Utilizando Maven Profiles

El concepto de Maven  Profiles es uno de los más interesantes de Maven ya que permite generar diferentes perfiles para el despliegue de las aplicaciones que desarrollamos.  Es una de las características en las que más nos apoyaremos cuando las aplicaciones ganen en complejidad. Usarlos es muy sencillo , para ello vamos a construir un proyecto Maven con una única clase utilizando Eclipse.

Usamos el asistente y construimos un proyecto que se denomina Maven Profiles , Eclipse genera el código necesario.

Añadimos una clase de servicio al proyecto para no tenerle vacío:

</pre>

package com.arquitecturajava;

public class Servicio {

}

El siguiente paso es crear dos ficheros de properties en la carpeta de recursos:

Ya tenemos nuestra mini aplicación configurada es momento de empaquetarla utilizando mvn package desde un terminal o desde el propio asistente del Eclipse, el resultado nos construirá un jar :

Todo a compilado de forma correcta sin embargo se han copiado ambos ficheros , tanto el de desarrollo como el de producción y nosotros queremos que solo se copie uno.

Maven Profiles

Para conseguir esta operativa con Maven , se utilizan los Maven Profiles que permiten configurar el flujo de Maven dependiendo del perfil que se seleccione.

Vamos a verlo en código:

</p>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.arquitecturajava</groupId>
<artifactId>mavenprofiles</artifactId>
<version>1</version>
<name>Maven Profiles</name>
<description>Ejemplo del uso de Maven Profiles</description>
<profiles>
<profile>
<id>Desarrollo</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<resources>

<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>produccion.properties</exclude>
</excludes>
</resource>
</resources>
</build>
</profile>

<profile>
<id>Produccion</id>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>desarrollo.properties</exclude>
</excludes>
</resource>
</resources>

</build>
</profile>
</profiles>
</project>
<p class="p1">

Ahora podemos ejecutar mvn package seleccionando el profile (perfil) que deseemos

El JAR que se construya solo incluirá uno de los ficheros:

Hemos conseguido configurar la aplicación dependiendo del perfil. Para utilizar  los profiles desde la linea de comandos usaremos mvn -PNombreProfile package

Otros artículos relacionados :

Introducción Maven

Maven Dependencias

Maven Eclipse