У меня есть многомодульный проект Maven. Мой родительский POM имеет следующие модули:
<module>common</module>
<module>ingest</module>
<module>package</module>
Модули package
обрабатывают все аспекты создания развертываемого zip-файла с использованием maven-antrun-plugin
. В двух других модулях находится основной код приложения. В package
у меня есть различные профили, содержащие параметры конфигурации для рабочей среды, среды подготовки и разработки. Каждый профиль выглядит так:
<profile>
<id>prod</id>
<properties>
<oozie.url>http://oozie-server:11000/oozie</oozie.url>
<stage.user>prod-stage</stage.user>
</properties>
</profile>
Это отлично работает на родительском уровне, запустив:
mvn clean install -P prod
Все файлы .properties имеют различные свойства, расширенные до тех, что указаны в профиле Maven.
В модуле ingest
один класс может полагаться на файл .properties с модулем ingest
. Содержимое этого файла свойств будет выглядеть примерно так:
stageUser=${stage.user}
При выполнении тестов для модуля ingest
свойства не расширяются, чтобы быть свойствами из профиля сборки, например. свойство по-прежнему будет stageUser=${stage.user}
, а не stageUser=prod-stage
. Это приводит к провалу теста.
Единственный обходной путь, который у меня есть, — это добавить необходимые профили и свойства, чтобы пройти тест в ingest
POM. Это означает, что у меня есть эти свойства в двух местах: в модулях package
и ingest
. Есть ли лучшее решение для этого?