perfiles en maven

20
Maven Trabajando con perfiles

Upload: ematiz-tecnologia-sl

Post on 13-Jun-2015

437 views

Category:

Technology


2 download

DESCRIPTION

Profiles in maven.

TRANSCRIPT

Page 1: Perfiles en maven

MavenTrabajando con perfiles

Page 2: Perfiles en maven

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.

Page 3: Perfiles en maven

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>

Page 4: Perfiles en maven

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.

Page 5: Perfiles en maven

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

Page 6: Perfiles en maven

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>

Page 7: Perfiles en maven

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.

Page 8: Perfiles en maven

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>

Page 9: Perfiles en maven

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>

Page 10: Perfiles en maven

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>

...

Page 11: Perfiles en maven

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.

Page 12: Perfiles en maven

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.

Page 13: Perfiles en maven

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

Page 14: Perfiles en maven

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>

Page 15: Perfiles en maven

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>

Page 16: Perfiles en maven

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>

...

Page 17: Perfiles en maven

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>

Page 18: Perfiles en maven

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>

...

Page 19: Perfiles en maven

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

Page 20: Perfiles en maven

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>