Я знаю, что во многих случаях (неуклюже, но) можно использовать два профиля, чтобы привести к чтению свойств из файла, если он присутствует, и установить значения по умолчанию в противном случае, например.
<profile>
<id>my-default-props</id>
<activation>
<file>
<missing>${my.file.path}</missing>
</file>
</activation>
<properties>
<my.prop1>Blah</my.prop1>
<my.prop2>Another</my.prop2>
</properties>
</profile>
<profile>
<id>read-my-props</id>
<activation>
<file>
<exists>${my.file.path}</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${my.file.path}</file>
</files>
<quiet>false</quiet>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
К сожалению, это не работает для меня: мне нужно переопределить значение «my.file.path» в различных дочерних проектах, но активация профиля оценивается очень рано в жизненном цикле. Это означает, что значение дочернего проекта не используется во время оценки, а свойства никогда не считываются должным образом.
Мне это кажется достаточно распространенным требованием, но Google говорит мне об обратном. Может ли кто-нибудь сказать мне, как я могу достичь этой цели? Спасибо.
my_app_db
, и я хочу, чтобы сборка (например, для интеграционных тестов) использовала ту же конфигурацию БД. - person pogul   schedule 06.05.2015