Diferencia entre revisiones de «Perfiles de configuración»

De Wiki de EGC
Saltar a: navegación, buscar
(Definir la configuración en el perfil)
(Activación de perfiles)
 
(No se muestran 5 ediciones intermedias del mismo usuario)
Línea 10: Línea 10:
 
Dentro del pom.xml del proyecto que desee configurar escriba todo el contenido del <code><build></code> y del <code><distributionManagment></code> dentro de <code><profiles><profile> …</code>. Quedaría algo así:
 
Dentro del pom.xml del proyecto que desee configurar escriba todo el contenido del <code><build></code> y del <code><distributionManagment></code> dentro de <code><profiles><profile> …</code>. Quedaría algo así:
 
<source lang="xml">
 
<source lang="xml">
...
+
 
  <profiles>
 
  <profiles>
 
   <profile>
 
   <profile>
Línea 24: Línea 24:
  
 
</source>
 
</source>
 +
 +
=Pruebe el despligue=
 +
<source lang="bash">
 +
mvn deploy
 +
</source>
 +
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
 +
<source lang="bash">
 +
mvn -P nombrePerfil ...
 +
</source>
 +
 +
* A nivel de usuario en ''USER_HOME/.m2/settings.xml'':
 +
<source lang="xml">
 +
  …
 +
  <activeProfiles>
 +
<activeProfile> prof-1 </activeProfile>
 +
<activeProfile> prof-2 </activeProfile> 
 +
  </activeProfiles>
 +
  …
 +
</source>
 +
 +
* 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. [http://maven.apache.org/enforcer/enforcer-rules/requireOS.html# OS options])
 +
<source lang="xml">
 +
  …
 +
  <profile>
 +
    <id> prof-1 </id>
 +
    <activation>
 +
<os>
 +
<family>windows</family>
 +
</os>
 +
    </activation>
 +
    <build>
 +
  …
 +
 +
</source>
 +
** Ejemplo 2: Activado por la existencia de un fichero/carpeta
 +
 +
<source lang="xml">
 +
  …
 +
  <profile>
 +
    <id> prof-1 </id>
 +
    <activation>
 +
<file>
 +
<exists>C:\myRepo</exists>
 +
</file>
 +
    </activation>
 +
    <build>
 +
  …
 +
 +
</source>
 +
Al igual que ''exists'' existe la opción ''missing''.
 +
** Ejemplo 3: Activado en función de una variable de entorno
 +
<source lang="xml">
 +
  …
 +
  <profile>
 +
    <id> prof-1 </id>
 +
    <activation>
 +
<property>
 +
          <name>env</name>
 +
          <value>dev</value>
 +
        </property>
 +
 +
    </activation>
 +
    <build>
 +
  …
 +
 +
</source>
 +
Se ejecutaría con <code> mvn –Denv=dev … </code>.
 +
 +
=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”.

Revisión actual del 17:00 1 dic 2015

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”.