Curso Maven
Perfiles de configuracion
En determinadas circunstancias hay configuración que requiere ser establecida de forma dinámica:
- Repositorios:
<repositories /> - Build cycle:
<build /> - Dependencias:
<dependencies /> - Propiedades de configuración:
<properties />
Ejemplo: Veamos un ejemplo de definición de configuración de acceso base de datos considerando que en el entorno de desarrollo se usa MySQL y en el entorno de producción se usa Oracle.
<profiles>
<profile>
<id>entorno-dev</id>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
</dependencies>
<properties>
<jdbc.url>jdbc:mysql://127.0.0.1:3306/db</jdbc.url>
<jdbc.username>root</jdbc.username>
<jdbc.password>contrasenha</jdbc.password>
</properties>
</profile>
<profile>
<id>entorno-pro</id>
<dependencies>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc</artifactId>
<version>6</version>
</dependency>
</dependencies>
<properties>
<jdbc.url>jdbc:oracle:thin:@127.0.0.1:1521:ora</jdbc.url>
<jdbc.username>system</jdbc.username>
<jdbc.password>contrasenha</jdbc.password>
</properties>
</profile>
</profiles>
La activación de estos perfiles puede realizarse de múltiples formas:
- Activación expresa
- Incluyendo el ID de profile dentro de un marca activeProfile en el
settings.xml. Por ejemplo: Para el perfil de IDentorno-dev<activeProfiles> <activeProfile>`entorno-dev</activeProfile> </activeProfiles>
- Incluyendo el ID de profile dentro de un marca activeProfile en el
- Valores de cierta variable: Por ejemplo, usando la variable de entorno db:
$> mvn clean install -Ddb=mysql<profile> <id>mysql</id> <activation> <property> <name>db</name> <value>mysql</value> </property> </activation> ... </profile> - Versión de JDK (activar en caso de
JDK 1.6)<profile> <activation> <jdk>1.6</jdk> </activation> ... </profile> - Versión de JDK (activar en caso de
JDK 1.5, 1.6, 1.7)<profile> <activation> <jdk>[1.5,1.8)</jdk> </activation> ... </profile> - Familia de sistema operativo:
mac,unix,windows, etc.<profile> <activation> <os> <name>Windows XP</name> <family>Windows</family> <arch>x86</arch> <version>5.1.2600</version> </os> </activation> ... </profile>
Comentarios
Publicar un comentario