Perfiles en maven

900 views
733 views

Published on

Profiles in maven.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
900
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Perfiles en maven

  1. 1. Maven Trabajando con perfiles
  2. 2. Trabajando con perfiles Índice de contenidos ‣ Introducción. ‣ Definición de perfiles. ‣ Ejecución de perfiles. ‣ ¿Qué parametrizamos? ‣ Activación de perfiles. Preparado por Jesús Salinas Revelles
  3. 3. Trabajando con perfiles Introducción ‣ La portabilidad de un build en maven es la medida de lo fácil que es construir un proyecto en diferentes entornos. <build> <plugins> <plugin> ... </plugin> </plugins> </build> ‣ 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. Preparado por Jesús Salinas Revelles
  4. 4. Trabajando con perfiles 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. Preparado por Jesús Salinas Revelles
  5. 5. Trabajando con perfiles 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> ... Preparado por Jesús Salinas Revelles
  6. 6. Trabajando con perfiles 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> Preparado por Jesús Salinas Revelles
  7. 7. Trabajando con perfiles ¿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. Preparado por Jesús Salinas Revelles
  8. 8. Trabajando con perfiles ¿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> Preparado por Jesús Salinas Revelles
  9. 9. Trabajando con perfiles ¿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> Preparado por Jesús Salinas Revelles
  10. 10. Trabajando con perfiles ¿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> ... Preparado por Jesús Salinas Revelles
  11. 11. Trabajando con perfiles 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. Preparado por Jesús Salinas Revelles
  12. 12. Trabajando con perfiles 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. Preparado por Jesús Salinas Revelles
  13. 13. Trabajando con perfiles 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: > mvn commands -PidPerfil ‣ Ejemplo: > mvn clean install -Pproduction Preparado por Jesús Salinas Revelles
  14. 14. Trabajando con perfiles 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> Preparado por Jesús Salinas Revelles
  15. 15. Trabajando con perfiles 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. <profile> <id>profile01</id> <activation> ... </activation> </profile> ‣ Los posibles elementos hijos son: ‣ jdk, os, property, file. Preparado por Jesús Salinas Revelles
  16. 16. Trabajando con perfiles Activación de perfiles ‣ Activación en función de la versión de jdk: ‣ Ejemplo: ... <profiles> <profile> <id>jdk16</id> <activation> <jdk>1.6</jdk> </activation> ... </profile> </profiles> ... ‣ Este perfil sólo se activa se maven se ejecuta con la versión 1.6 del Java Development Kit. Preparado por Jesús Salinas Revelles
  17. 17. Trabajando con perfiles 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> Preparado por Jesús Salinas Revelles
  18. 18. Trabajando con perfiles 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> ... Preparado por Jesús Salinas Revelles
  19. 19. Trabajando con perfiles 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> ... Preparado por Jesús Salinas Revelles
  20. 20. Trabajando con perfiles 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> Preparado por Jesús Salinas Revelles

×