Унаследованный мной проект 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.