SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Maven
Trabajando con perfiles
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

DSLs in JavaScript
DSLs in JavaScriptDSLs in JavaScript
DSLs in JavaScript
 
OVN Controller Incremental Processing
OVN Controller Incremental ProcessingOVN Controller Incremental Processing
OVN Controller Incremental Processing
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Ansible
AnsibleAnsible
Ansible
 
Ansible - Introduction
Ansible - IntroductionAnsible - Introduction
Ansible - Introduction
 
Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
 
Hacking the swisscom modem
Hacking the swisscom modemHacking the swisscom modem
Hacking the swisscom modem
 
Namespaces in Linux
Namespaces in LinuxNamespaces in Linux
Namespaces in Linux
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and image
 
Ansible - Hands on Training
Ansible - Hands on TrainingAnsible - Hands on Training
Ansible - Hands on Training
 
Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Cisco CCNA ITN (Introduction to Networks) - Certification
Cisco CCNA ITN (Introduction to Networks) - CertificationCisco CCNA ITN (Introduction to Networks) - Certification
Cisco CCNA ITN (Introduction to Networks) - Certification
 
Getting started with YANG
Getting started with YANGGetting started with YANG
Getting started with YANG
 
2194 A 07
2194 A 072194 A 07
2194 A 07
 
OpenDaylight OpenStack Integration
OpenDaylight OpenStack IntegrationOpenDaylight OpenStack Integration
OpenDaylight OpenStack Integration
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
Home assistant
Home assistantHome assistant
Home assistant
 
SR-IOV ixgbe Driver Limitations and Improvement
SR-IOV ixgbe Driver Limitations and ImprovementSR-IOV ixgbe Driver Limitations and Improvement
SR-IOV ixgbe Driver Limitations and Improvement
 
Getting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry PiGetting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry Pi
 

Similar a Perfiles en maven

Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Framework
ricsoc
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
cok12v
 

Similar a Perfiles en maven (20)

Primefaces
PrimefacesPrimefaces
Primefaces
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
 
Video
VideoVideo
Video
 
Taller integracion jsf spring
Taller integracion jsf springTaller integracion jsf spring
Taller integracion jsf spring
 
Test Unitarios y E2E front y Back
Test Unitarios y E2E front y BackTest Unitarios y E2E front y Back
Test Unitarios y E2E front y Back
 
Gestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterGestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniter
 
Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Framework
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Testing & debugging lightning web components
Testing & debugging lightning web componentsTesting & debugging lightning web components
Testing & debugging lightning web components
 
Continuous Integration
Continuous Integration Continuous Integration
Continuous Integration
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven
 
Atix13
Atix13Atix13
Atix13
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en Autentia
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
Taller de zan php
Taller de zan phpTaller de zan php
Taller de zan php
 
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
Magallanes, Herramienta de despliegue PHP sencilla y poderosa�Magallanes, Herramienta de despliegue PHP sencilla y poderosa�
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
 
Herramientas Digitales
Herramientas DigitalesHerramientas Digitales
Herramientas Digitales
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
Insertar video
Insertar videoInsertar video
Insertar video
 

Más de Ematiz Tecnología, S.L.

Liferay 6 1, Internacionalización en nuestros desarrollos
Liferay 6 1, Internacionalización en nuestros desarrollosLiferay 6 1, Internacionalización en nuestros desarrollos
Liferay 6 1, Internacionalización en nuestros desarrollos
Ematiz Tecnología, S.L.
 
Liferay 6.1 Campos personalizados desde el panel de control
Liferay 6.1  Campos personalizados desde el panel de controlLiferay 6.1  Campos personalizados desde el panel de control
Liferay 6.1 Campos personalizados desde el panel de control
Ematiz Tecnología, S.L.
 
Liferay versión 6.1 Trabajando con LDAP, introducción
Liferay versión 6.1  Trabajando con LDAP, introducciónLiferay versión 6.1  Trabajando con LDAP, introducción
Liferay versión 6.1 Trabajando con LDAP, introducción
Ematiz Tecnología, S.L.
 

Más de Ematiz Tecnología, S.L. (11)

Contenidos personalizados en alfresco ecm
Contenidos personalizados en alfresco ecmContenidos personalizados en alfresco ecm
Contenidos personalizados en alfresco ecm
 
El core de Alfresco 4.2
El core de Alfresco 4.2El core de Alfresco 4.2
El core de Alfresco 4.2
 
Filtrado de recursos en Maven
Filtrado de recursos en MavenFiltrado de recursos en Maven
Filtrado de recursos en Maven
 
Estructura de un informe en JasperReports
Estructura de un informe en JasperReportsEstructura de un informe en JasperReports
Estructura de un informe en JasperReports
 
Introducción a JasperReports
Introducción a JasperReportsIntroducción a JasperReports
Introducción a JasperReports
 
Liferay 6 1, Internacionalización en nuestros desarrollos
Liferay 6 1, Internacionalización en nuestros desarrollosLiferay 6 1, Internacionalización en nuestros desarrollos
Liferay 6 1, Internacionalización en nuestros desarrollos
 
Liferay 6.1 Service Builder
Liferay 6.1  Service BuilderLiferay 6.1  Service Builder
Liferay 6.1 Service Builder
 
Liferay 6.1 Campos personalizados desde el panel de control
Liferay 6.1  Campos personalizados desde el panel de controlLiferay 6.1  Campos personalizados desde el panel de control
Liferay 6.1 Campos personalizados desde el panel de control
 
Liferay versión 6.1 Trabajando con LDAP, introducción
Liferay versión 6.1  Trabajando con LDAP, introducciónLiferay versión 6.1  Trabajando con LDAP, introducción
Liferay versión 6.1 Trabajando con LDAP, introducción
 
Liferay 6.1 Campos personalizados
Liferay 6.1 Campos personalizadosLiferay 6.1 Campos personalizados
Liferay 6.1 Campos personalizados
 
Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1
 

Último

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (10)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

Perfiles en maven

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