Si desea eliminar la hormiga de su proceso, consideraría usar perfiles de compilación con filtros.
En este escenario, conecte sus archivos de propiedades a la estructura del árbol src/main/resources. Entonces parametrizar el archivo de propiedades con las propiedades del filtro como este:
jdbc.url=${filtered.jdbc.property}
entonces dentro de src/main/filtros crear archivos de filtro basados en perfiles. lo que podría tener dev-filters.properties sit-filters.properties, etc. Estos contener:
filtered.jdbc.property=jdbc url here
A continuación, crear perfiles de configuración para cada región en la que se establece una env
propiedad que apunta a la región en particular su edificio. A continuación, puede configurar el filtro de recursos para usar ${env}-filters.properties
para cada compilación. Además, puede configurar el plugin war para agregar la propiedad env a su artefacto, de modo que realmente almacene 4 artefactos diferentes en su repositorio bajo un clasificador diferente.
Luego, simplemente crea la aplicación con cada perfil. Tienes que llamar a la compilación para cada perfil, pero funciona bien.
Ejemplo de algunos ajustes en el 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>
También, apoyos a este blog post que es donde encontré originalmente los pasos para lograr esto.
Es posible configurar el plugin Maven guerra con múltiples ejecuciones y clasificadores asociados, esto produce varios archivos de guerra de una sola ejecución cada denominarse adecuadamente. Veo http://stackoverflow.com/questions/3866784/release-different-configurations-with-maven – chrisinmtown