maven-2 maven profiles

maven 2 - Maven Construye mĂșltiples perfiles de una sola vez.



maven-2 profiles (1)

Maven no es como hormiga. Con ant, básicamente puedes hacer lo que quieras cuando quieras hacerlo. Con Maven, hay un ciclo de vida de compilación claro y documentado, y su objetivo es construir un componente (y posiblemente adjuntar otros artefactos a la compilación).

Sin embargo, lo que planea hacer es construir un componente varias veces, pero con diferentes parámetros. Esto no encaja en el ciclo de vida de Maven. Entonces, lo que deberá hacer es provocar que un proceso externo realice la iteración y llame a Maven repetidamente con diferentes parámetros.

La forma clásica de lograr esto sería usar un script de shell, pero también puede usar el Invocador de Maven para iniciar un proceso separado desde un contexto de Java o Maven.

Nuestra política es construir solo 1 jar desplegable. todas las configuraciones específicas del entorno se mantienen separadas, y las construimos todas juntas a la vez. por lo tanto, en nuestro proceso Ant actual, tenemos un archivo de propiedades para cada entorno, hacemos un ciclo sobre ellos y creamos un conjunto de archivos de configuración para cada entorno.

En mi POM XML actual, solo puedo crear un perfil suministrado en la línea de comandos. ¿Es posible lograrlo a través de Maven?

Éstos son algunos de la parte relevante de POM.xml

<!-- Define profiles here and make DEV as default profile --> <profiles> <!-- dev Profile --> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <!-- qa Profile --> <profile> <id>qa</id> <properties> <env>qa</env> </properties> </profile> <!-- prod Profile --> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles> ... <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.4.3</version> <executions> <execution> <phase>validate</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <filters> <filter>env/${env}.properties</filter> </filters> <outputDirectory>${project.build.directory}/config/${env} </outputDirectory> <resources> <resource> <filtering>true</filtering> <directory>${basedir}/src/main/config/default </directory> <includes> <include>*.xml</include> <include>*.properties</include> </includes> </resource>

.....

Gracias, Prabhjot