Получить Maven basedir из файла свойств в проекте SpringBoot

Унаследованный мной проект Maven содержит несколько файлов ресурсов, используемых в JUnits.
Эти файлы упоминаются в файле свойств как абсолютные пути.
Давайте предположим, что проект Maven находится под myproject , где находится основной pom.xml .

Файл config.properties имеет:

keystore.file=C:/Users/tom/myproject/web/src/test/resources/myfile.jks

Я хочу сослаться на этот ресурс из относительного пути проекта Maven.
Итак, я пытался что-то вроде:

keystore.file=${project.basedir}/web/src/test/resources/myfile.jks

Я читал о фильтрации ресурсов, которая упоминается в .

Проект использует SpringBoot, и при запуске JUnit жалуется:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'project.basedir' in string value "${project.basedir}/web/src/test/resources/myfile.jks"
    at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174)

Всего 1 ответ


Перепробовав разные вещи, нашел решение моей проблемы.
Добавляем эту строку в Spring Boot application.properties :

maven.basedir=@project.basedir@

И тогда в config.properties :

keystore.file=${maven.basedir}/web/src/test/resources/myfile.jks

Заставляет это работать.
Проверьте: Spring Boot автоматическое расширение свойства с помощью Maven.


Есть идеи?

10000