Perfiles de configuración

De Wiki de EGC
Saltar a: navegación, buscar

Se creará un pom.xml que se comportará de manera diferente en función de ciertas variables del entorno como, por ejemplo, la existencia de un fichero o el tiempo de sistema operativo.

Niveles de creación de perfiles

Existen 3 niveles en los que crear un perfil:

  • A nivel de instalación (Maven settings.xml)
  • A nivel de usuario (User settings.xml)
  • A nivel de proyecto (pom.xml)

Nos centraremos en la creación a nivel de proyecto.

Definir la configuración en el perfil

Dentro del pom.xml del proyecto que desee configurar escriba todo el contenido del <build> y del <distributionManagment> dentro de <profiles><profile> …. Quedaría algo así:

<profiles>
   <profile>
     <id> prof-1 </id>
     <build></build>
     <distributionManagement></distributionManagement>
  </profile>
</profiles>

Pruebe el despligue

mvn deploy

Observe como la configuración no tiene efecto ya que el perfil no está activado.

Activación de perfiles

Hay 3 maneras de activar un perfil:

  • De manera explícita al invocar un comando Maven
mvn -P nombrePerfil ...
  • A nivel de usuario en USER_HOME/.m2/settings.xml:
<activeProfiles>
	<activeProfile> prof-1 </activeProfile>
	<activeProfile> prof-2 </activeProfile>  
  </activeProfiles>
  • A nivel de proyecto, mediante un trigger en el propio perfil que indique bajo qué condiciones dicho perfil ha de usarse (variables, sistema operativo, archivos):
    • Ejemplo 1: Activado en entornos Windows (cf. OS options)
<profile>
     <id> prof-1 </id>
     <activation>
	 <os>
		<family>windows</family>
	 </os>
     </activation>
     <build>
    • Ejemplo 2: Activado por la existencia de un fichero/carpeta
<profile>
     <id> prof-1 </id>
     <activation>
	 <file>
		<exists>C:\myRepo</exists>
	 </file>
     </activation>
     <build>

Al igual que exists existe la opción missing.

    • Ejemplo 3: Activado en función de una variable de entorno
<profile>
     <id> prof-1 </id>
     <activation>
	<property>
          <name>env</name>
          <value>dev</value>
        </property>

     </activation>
     <build>

Se ejecutaría con mvn –Denv=dev … .

Tarea final

Cree dos perfiles para configurar una ruta distinta para el sitio de despliegue. La activación del perfil se hará en función de la variable “env”. Un perfil se activará si ésta vale “dev” y el otro se activará si vale “prod”.