Если вы хотите удалить ant из вашего процесса, я бы посмотрел на использование профилей сборки с фильтрами.
В этом случае подключите файлы свойств в древовидную структуру src / main / resources. Затем параметризируйте файл свойств с помощью свойств фильтра следующим образом:
jdbc.url=${filtered.jdbc.property}
Затем внутри src / main / filters создают файлы фильтров на основе профилей. чтобы вы могли иметь dev-filters.properties sit-filters.properties и т. д. Они содержат:
filtered.jdbc.property=jdbc url here
Затем вы настраиваете профили сборки для каждого региона, где вы устанавливаете свойство env
, указывающее на конкретный регион вашего здания. Затем вы можете настроить фильтр ресурсов для использования ${env}-filters.properties
для каждой сборки. Кроме того, вы можете настроить плагин war для добавления свойства env к вашему артефакту, чтобы вы фактически хранили 4 различных артефакта в своем хранилище под другим классификатором.
Затем вы просто создаете приложение для каждого профиля. Вы должны вызывать сборку для каждого профиля, но она работает хорошо.
Пример некоторых настроек в POM:
<build>
<filters>
<filter>src/main/filters/filter-${env}-application.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-beta-1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>war</goal>
</goals>
<configuration>
<classifier>${env}</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>LOCAL</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>LOCAL</env>
</properties>
</profile>
<profile>
<id>DEV</id>
<properties>
<env>DEV</env>
</properties>
</profile>
<profile>
<id>UAT</id>
<properties>
<env>UAT</env>
</properties>
</profile>
<profile>
<id>PROD</id>
<properties>
<env>PROD</env>
</properties>
</profile>
</profiles>
Кроме того, перейдите к этому сообщению в блоге , в котором я первоначально нашел шаги для достижения этой цели.