У меня есть 3 maven проекта A, B, C. A - родительский проект B, а B - родительский C. Все профили определены в pom.xml
проекта A .
В проекте C я пытаюсь выбрать файл свойств в контексте Spring-Test (в разделе src / test / resources ) на основе выбранного профиля. Для регрессионных тестов , у нас есть 2 файла свойств:
- application-test-local.properties
- application-test.properties
В нашей системе разработки Windows выбранный профиль будет «локальным» и, соответственно, на серверах. Когда выбран «локальный» профиль, следует использовать application-test-local.properties
и application-test.properties
в противном случае в контексте теста Spring. В проекте C , в spring-test-context.xml
я пробовал:
<beans profile="docker">
<util:properties id="metaDbProps" location="application-test-local.properties"/>
</beans>
<beans profile="default">
<util:properties id="metaDbProps" location="application-test.properties"/>
</beans>
Однако, похоже, что приложение не может передать выбранный профиль Maven в профиль Spring, поскольку я пытаюсь "mvn clean test -Pdocker" , и он всегда выбирает файл свойств из " default"профиль.
Есть идеи, что исправить, чтобы передать профиль maven в профиль пружины, чтобы он мог подобрать нужный файл свойств?
Для понимания вот как определяются профили в проекте A:
<profiles>
<!-- Windows development -->
<profile>
<id>docker</id>
<activation/>
<properties>
<INSTALL_MACHINE_LIST>localhost</INSTALL_MACHINE_LIST>
<COPY_MODE>local</COPY_MODE>
</properties>
</profile>
<!-- Development -->
<profile>
<id>dev</id>
<activation/>
<properties>
<INSTALL_MACHINE_LIST>dev01</INSTALL_MACHINE_LIST>
</properties>
</profile>
<!-- QA -->
<profile>
<id>qa</id>
<activation/>
<properties>
<INSTALL_MACHINE_LIST>dqa01</INSTALL_MACHINE_LIST>
</properties>
</profile>
<!-- Production -->
<profile>
<id>prod</id>
<activation/>
<properties>
<INSTALL_MACHINE_LIST>prod01</INSTALL_MACHINE_LIST>
</properties>
</profile>
</profiles>