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

A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsRamit Surana
 
Kubernetes Architecture - beyond a black box - Part 1
Kubernetes Architecture - beyond a black box - Part 1Kubernetes Architecture - beyond a black box - Part 1
Kubernetes Architecture - beyond a black box - Part 1Hao H. Zhang
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to KubernetesImesh Gunaratne
 
A Java Microservices Spring Boot and Docker case study.
A Java Microservices Spring Boot and Docker case study.A Java Microservices Spring Boot and Docker case study.
A Java Microservices Spring Boot and Docker case study.Subramanyam Vemala
 
Introduction to Reservoir Fluids Courese
Introduction to Reservoir Fluids CoureseIntroduction to Reservoir Fluids Courese
Introduction to Reservoir Fluids CoureseRamez Abdalla, M.Sc
 
Tipos de Equipos de Perforación.pdf
Tipos de Equipos de Perforación.pdfTipos de Equipos de Perforación.pdf
Tipos de Equipos de Perforación.pdfbenjamin4894
 
WebLogic authentication debugging
WebLogic authentication debuggingWebLogic authentication debugging
WebLogic authentication debuggingMaarten Smeets
 
Oracle Inventory - Difference between Cycle Count and Physical Inventory
Oracle Inventory - Difference between Cycle Count and Physical Inventory Oracle Inventory - Difference between Cycle Count and Physical Inventory
Oracle Inventory - Difference between Cycle Count and Physical Inventory Boopathy CS
 
Equipos de cementacion
Equipos de cementacionEquipos de cementacion
Equipos de cementacionMERVIN MELEAN
 
White paper a complete guide to oracle bi discoverer end user layer
White paper  a complete guide to oracle bi discoverer end user layerWhite paper  a complete guide to oracle bi discoverer end user layer
White paper a complete guide to oracle bi discoverer end user layerLatha Rajendran
 
Oracle Concurrent Program Setup document
Oracle Concurrent Program Setup  documentOracle Concurrent Program Setup  document
Oracle Concurrent Program Setup documentvenkatesh gurusamy
 
Oracle Applications R12 architecture
Oracle Applications R12 architectureOracle Applications R12 architecture
Oracle Applications R12 architectureSekhar Byna
 
Oracle apps-technical-tutorial
Oracle apps-technical-tutorialOracle apps-technical-tutorial
Oracle apps-technical-tutorialmagnifics
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to MavenVadym Lotar
 
Q921 rfp lec6 v1
Q921 rfp lec6 v1Q921 rfp lec6 v1
Q921 rfp lec6 v1AFATous
 
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - WebinarNAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
Ship building process &amp; shipyard productivity
Ship building process &amp; shipyard productivityShip building process &amp; shipyard productivity
Ship building process &amp; shipyard productivityFatimatuzzahra Zaza
 
Oak, the architecture of Apache Jackrabbit 3
Oak, the architecture of Apache Jackrabbit 3Oak, the architecture of Apache Jackrabbit 3
Oak, the architecture of Apache Jackrabbit 3Jukka Zitting
 

La actualidad más candente (20)

Discrete Job Closure Process
Discrete Job Closure ProcessDiscrete Job Closure Process
Discrete Job Closure Process
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
 
Kubernetes Architecture - beyond a black box - Part 1
Kubernetes Architecture - beyond a black box - Part 1Kubernetes Architecture - beyond a black box - Part 1
Kubernetes Architecture - beyond a black box - Part 1
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
A Java Microservices Spring Boot and Docker case study.
A Java Microservices Spring Boot and Docker case study.A Java Microservices Spring Boot and Docker case study.
A Java Microservices Spring Boot and Docker case study.
 
Introduction to Reservoir Fluids Courese
Introduction to Reservoir Fluids CoureseIntroduction to Reservoir Fluids Courese
Introduction to Reservoir Fluids Courese
 
Tipos de Equipos de Perforación.pdf
Tipos de Equipos de Perforación.pdfTipos de Equipos de Perforación.pdf
Tipos de Equipos de Perforación.pdf
 
WebLogic authentication debugging
WebLogic authentication debuggingWebLogic authentication debugging
WebLogic authentication debugging
 
Oracle Inventory - Difference between Cycle Count and Physical Inventory
Oracle Inventory - Difference between Cycle Count and Physical Inventory Oracle Inventory - Difference between Cycle Count and Physical Inventory
Oracle Inventory - Difference between Cycle Count and Physical Inventory
 
Equipos de cementacion
Equipos de cementacionEquipos de cementacion
Equipos de cementacion
 
White paper a complete guide to oracle bi discoverer end user layer
White paper  a complete guide to oracle bi discoverer end user layerWhite paper  a complete guide to oracle bi discoverer end user layer
White paper a complete guide to oracle bi discoverer end user layer
 
Oracle Concurrent Program Setup document
Oracle Concurrent Program Setup  documentOracle Concurrent Program Setup  document
Oracle Concurrent Program Setup document
 
Oracle Applications R12 architecture
Oracle Applications R12 architectureOracle Applications R12 architecture
Oracle Applications R12 architecture
 
Oracle apps-technical-tutorial
Oracle apps-technical-tutorialOracle apps-technical-tutorial
Oracle apps-technical-tutorial
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to Maven
 
Oracle application framework (oaf) online training
Oracle application framework (oaf) online trainingOracle application framework (oaf) online training
Oracle application framework (oaf) online training
 
Q921 rfp lec6 v1
Q921 rfp lec6 v1Q921 rfp lec6 v1
Q921 rfp lec6 v1
 
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
 
Ship building process &amp; shipyard productivity
Ship building process &amp; shipyard productivityShip building process &amp; shipyard productivity
Ship building process &amp; shipyard productivity
 
Oak, the architecture of Apache Jackrabbit 3
Oak, the architecture of Apache Jackrabbit 3Oak, the architecture of Apache Jackrabbit 3
Oak, the architecture of Apache Jackrabbit 3
 

Similar a Perfiles en maven

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...JaenFrankcezco
 
Taller integracion jsf spring
Taller integracion jsf springTaller integracion jsf spring
Taller integracion jsf springIBM
 
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 BackEric Zeidan
 
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 CodeIgniterandrewzg
 
Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Frameworkricsoc
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Edgar Dueñas
 
Testing & debugging lightning web components
Testing & debugging lightning web componentsTesting & debugging lightning web components
Testing & debugging lightning web componentsFederico Giust
 
Continuous Integration
Continuous Integration Continuous Integration
Continuous Integration jose diaz
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con MavenEudris Cabrera
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaJorge Pacheco Mengual
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Facescok12v
 
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 poderosaFco Javier Núñez Berrocoso
 
Insertar video
Insertar videoInsertar video
Insertar video0cero
 

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.

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

Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
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 FabricKeyla Dolores Méndez
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
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 JosephBRAYANJOSEPHPEREZGOM
 
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.pptx241521559
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
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)GDGSucre
 
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 UninoveFagnerLisboa3
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
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
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
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íassuserf18419
 

Último (19)

Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
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
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
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
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
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)
 
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
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
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...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
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
 

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