Получить Maven basedir из файла свойств в проекте SpringBoot - PullRequest
1 голос
/ 16 мая 2019

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

Файл 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 Ответ

1 голос
/ 17 мая 2019

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

maven.basedir=@project.basedir@

А потом в config.properties:

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

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

...