Perfiles en maven
-
Upload
ematiz-tecnologia-sl -
Category
Technology
-
view
437 -
download
2
description
Transcript of Perfiles en maven
MavenTrabajando con perfiles
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Índice de contenidos
‣ Introducción.
‣ Definición de perfiles.
‣ Ejecución de perfiles.
‣ ¿Qué parametrizamos?
‣ Activación de perfiles.
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Introducción
‣ La portabilidad de un build en maven es la medida de lo fácil que es construir un proyecto en diferentes entornos.
‣ Se necesitan mecanismos para personalizar de forma sencilla el proceso de construcción software para poder adaptarlo a diferentes entornos, entornos de producción, preproducción, desarrollo, etc.
<build> <plugins>
<plugin> ...
</plugin> </plugins>
</build>
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Definición de perfiles
‣ Un perfil o profile es un conjunto de valores de configuración que pueden activarse o sobreescribir unos valores por defecto bajo determinadas circunstancias.
‣ El uso de perfiles permite personalizar el proceso de construcción software para diferentes entornos.
‣ Los perfiles se definen en el fichero pom.xml y son identificados mediante un id. Al ejecutar maven se podrá hacer referencia a esos perfiles gracias a este identificador.
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Definición de perfiles
‣ El elemento xml profile nos permite definir un perfil en maven. El elemento xml profiles agrupa los distintos perfiles que se definen dentro de un proyecto.
‣ Sintaxis:
...<profiles>
<profile> <id>idPerfil_A</id> ...
</profile><profile>
<id>idPerfil_B</id> ...
</profile> </profiles>...
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Definición de perfiles
‣ Ejemplo:
<profiles><profile>
<id>production</id> <build> <plugins>
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration>
<debug>false</debug> <optimize>true</optimize>
</configuration> </plugin>
</plugins> </build>
</profile> </profiles>
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
¿Qué parametrizamos?
‣ Cuando se define un perfil en un proyecto maven, parametrizamos dicho proyecto para que, la ejecución de su ciclo de vida sea diferente dependiendo del perfil seleccionado.
‣ Elementos parametrizables:
‣ Elemento repositories: se pueden modificar los repositorios con los que se trabaja.
‣ Elemento pluginRepositories: se pueden modificar los repositorios de plugins.
‣ Elemento dependencies: las dependencias asociados al proyecto pueden alterarse en función del perfil con el que trabajamos.
‣ Elemento plugins: los plugins asociados al proyecto pueden alterarse en función del perfil con el que trabajamos.
‣ Elemento properties: propiedades del proyecto.
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
¿Qué parametrizamos?
‣ Elementos parametrizables (cont.):
‣ Elemento modules: módulos.
‣ Elemento reporting: configuración de los informes.
‣ Elemento dependencyManagement.
‣ Elemento distributionManagement.
‣ Elementos hijo del elemento build:
‣ <defaultGoal>
‣ <resources>
‣ <testResources>
‣ <finalName>
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
¿Qué parametrizamos?
‣ Ejemplo con propiedades:
<profiles><profile>
<id>produccion</id><properties> <appserver.home>/opt/apacheProdServer</appserver.home></properties>
</profile><profile>
<id>preproduccion</id><properties> <appserver.home>/opt/apachePreServer</appserver.home></properties>
</profile>...
</profiles>
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
¿Qué parametrizamos?
‣ Ejemplo con plugins:
... <profiles> <profile> <id>test</id> <build> <plugins> <plugin> <artifactId>maven-antrun-plugin</artifactId> ... </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> … </plugin> </plugins> </build> </profile>
...
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Tipos de perfiles
‣ Existen diferentes tipos de perfiles dependiendo del fichero en el que se define:
‣ Perfiles por proyecto: estos perfiles se definen en el fichero pom.xml del proyecto.
‣ Por usuario: se definen en el fichero setting.xml asociado al usuario, %USER_HOME%/.m2/settings.xml.
‣ Perfil global: se definen en el fichero setting.xml asociado al sistema, %M2_HOME%/conf/settings.xml.
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Activación de perfiles
‣ Un perfil en maven se puede activar siguiendo diferentes procedimientos:
‣ De forma explícita utilizando la consola.
‣ Gracias a la configuración definida para maven.
‣ Apoyándose en variables de entorno.
‣ Configuración del sistema operativo.
‣ Gracias a la existencia o no de determinados ficheros.
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Activación de perfiles
‣ Activación explícita utilizando la consola:
‣ Cada perfil está identificado mediante el elemento xml id y al ejecutar maven se hará referencia a él mediante el parámtro -P.
‣ Sintaxis:
‣ Ejemplo:
> mvn clean install -Pproduction
> mvn commands -PidPerfil
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Activación de perfiles
‣ Configuración en maven:
‣ El fichero settings.xml permite definir qué perfil debe aplicarse. Los elementos activeProfiles y activeProfile son los responsables:
<settings 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/settings-1.0.0.xsd"> <mirrors> <mirror> ... </mirror> </mirrors> <activeProfiles> <activeProfile>PRODUCCION</activeProfile> </activeProfiles></settings>
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Activación de perfiles
‣ Activación de un perfil en configuración:
‣ El elemento activation define las condiciones que activan el perfil en el que se encuentra definido.
‣ Los posibles elementos hijos son:
‣ jdk, os, property, file.
<profile> <id>profile01</id> <activation>
... </activation>
</profile>
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Activación de perfiles
‣ Activación en función de la versión de jdk:
‣ Ejemplo:
‣ Este perfil sólo se activa se maven se ejecuta con la versión 1.6 del Java Development Kit.
...<profiles>
<profile> <id>jdk16</id> <activation>
<jdk>1.6</jdk> </activation>...
</profile> </profiles>
...
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Activación de perfiles
‣ Activación en función del sistema operativo:
‣ Elemento os: sus elementos hijos que configuran el sistema operativo son name, family, arch, etc.
‣ Ejemplo:
<activation> ...<os>
<name>Windows XP</name> <family>Windows</family> <arch>x86</arch> <version>5.1.2600</version>
</os> </activation>
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Activación de perfiles
‣ Activación en función del valor de una propiedad:
‣ Ejemplos:
...<activation>
<property> <name>mavenVersion</name> <value>2.0.5</value>
</property></activation>
...
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Activación de perfiles
‣ Activación en función de la ausencia de propiedades:
‣ Ejemplos:
...<profile>
<id>development</id> <activation>
<property> <name>!environment.type</name>
</property> </activation>
</profile>...
Trabajando con perfiles
Preparado por Jesús Salinas Revelles
Activación de perfiles
‣ Activación en función de la existencia o ausencia de ficheros:
‣ El elemento file define esta opción. Sus elementos hijos exists y missing definen respectivamente si la condición es la existencia o la ausencia.
‣ Ejemplos:
<activation>
<file> <exists>file2.properties</exists> <missing>file1.properties</missing>
</file></activation>