SlideShare una empresa de Scribd logo
1 de 5
build lifecycle management
https://maven.apache.org
Lo que tengo
● Tengo una aplicación que usa jars de múltiples librerías.
● Algunas de las librerías tienen que ser incluidas en el paquete
generado (JAR, WAR, EAR, AAR ...) y otras no.
● Algunas librerías tienen que estar disponibles en entorno de
desarrollo y luego deben estar presentes en el runtime del
servidor.
● Algunas librerías dependen de otras librerías (y otras de algunas).
● Tengo múltiples desarrolladores que trabajan sobre el mismo
fuente.
Lo que quiero
● Quiero poder incorporar fácilmente a otro desarrollador al
proyecto pero no quiero tener que pasarle ~100MB de librerías.
● Quiero que generar el EAR sea fácil y rápido a partir de los
fuentes y que no dependa de la máquina del desarrollador.
● Quiero poder ejecutar constantemente las pruebas
unitarias para asegurar que los cambios que voy haciendo no afecten
funcionalidad anterior.
● Quiero tener métricas de calidad del fuente actualizados para
conocer el nivel de calidad del software.
● Quiero tener una versión actualizada de la
documentación.
¿Qué es maven?
● Estandariza, facilita y apoya el ciclo de vida de builds de una
aplicación.
○ validate - validar que el proyecto es correcto y que toda la información necesaria está
presente.
○ compile - compilar el código fuente
○ test - ejecutar pruebas unitarias sin la necesidad de empaquetar y desplegar la
aplicación
○ package - generar un paquete distribuible (jar, war, ear ...)
○ integration-test - procesar y desplegar el empaquetado en un ambiente donde se
ejecute pruebas de integración
○ verify - validar que el empaquetado satisface criterios de calidad
○ install - instalar el paquete el el repositorio local
○ deploy - en ambiente de integración de release se copia el empaquetado final a un
repositorio remoto para compartir con otros desarrolladores
¿Qué hace maven?
● Permite crear proyectos en base a plantillas preexistentes (y crear las
propias).
● Describe el proyecto y sus dependencias declarativamente (POM).
● Administra dependencias (y dependencias de las dependencias).
● Genera empaquetados de manera uniforme.
● Genera documentación a partir de los fuentes.
● Reportes de calidad de código.
● Extensible a través de plugins.
● Convención sobre configuración. Todos los defaults son modificables.
● Integración con sistemas de control de versiones e integración continua.

Más contenido relacionado

La actualidad más candente

Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsBEEVA_es
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoAprende Git
 
Despliegue de aplicaciones Java con Docker y Kubernetes
Despliegue de aplicaciones Java con Docker y KubernetesDespliegue de aplicaciones Java con Docker y Kubernetes
Despliegue de aplicaciones Java con Docker y KubernetesJaime Perera Merino
 
Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en WindowsAntonio Ognio
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticasIker Canarias
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven InfrastructureAngel Nuñez
 
Argentesting 2017 - Taller de Jenkins
Argentesting 2017 - Taller de JenkinsArgentesting 2017 - Taller de Jenkins
Argentesting 2017 - Taller de JenkinsArgentesting
 
Configuración de software
Configuración de softwareConfiguración de software
Configuración de softwareJorge Rodriguez
 
Flujo de trabajo básico con git
Flujo de trabajo básico con gitFlujo de trabajo básico con git
Flujo de trabajo básico con gitJan Sanchez
 
A Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle ManagementA Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle ManagementEdgardo Hames
 
Desarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceDesarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceMario IC
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con gitJuan Vladimir
 
Tech Meetup: How to solve 2 common problems in Android & iOS
Tech Meetup: How to solve 2 common problems in Android & iOSTech Meetup: How to solve 2 common problems in Android & iOS
Tech Meetup: How to solve 2 common problems in Android & iOSSantex Group
 
Gestor de replicas básico en java
Gestor de replicas básico en java Gestor de replicas básico en java
Gestor de replicas básico en java Rafael Paredon Uribe
 
Cómo migrar de source safe a team foundation server 2010
Cómo migrar de source safe a team foundation server 2010Cómo migrar de source safe a team foundation server 2010
Cómo migrar de source safe a team foundation server 2010Diego Vazquez Arce
 

La actualidad más candente (20)

Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y Jenkins
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
 
Guia del trabajo con excepciones
Guia del trabajo con excepcionesGuia del trabajo con excepciones
Guia del trabajo con excepciones
 
Despliegue de aplicaciones Java con Docker y Kubernetes
Despliegue de aplicaciones Java con Docker y KubernetesDespliegue de aplicaciones Java con Docker y Kubernetes
Despliegue de aplicaciones Java con Docker y Kubernetes
 
Pipelines as code with Drone
Pipelines as code with DronePipelines as code with Drone
Pipelines as code with Drone
 
Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en Windows
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticas
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven Infrastructure
 
Argentesting 2017 - Taller de Jenkins
Argentesting 2017 - Taller de JenkinsArgentesting 2017 - Taller de Jenkins
Argentesting 2017 - Taller de Jenkins
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Configuración de software
Configuración de softwareConfiguración de software
Configuración de software
 
Flujo de trabajo básico con git
Flujo de trabajo básico con gitFlujo de trabajo básico con git
Flujo de trabajo básico con git
 
A Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle ManagementA Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle Management
 
Una gota de elixir 2017
Una gota de elixir   2017Una gota de elixir   2017
Una gota de elixir 2017
 
Desarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceDesarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_source
 
Introduction to unit testing
Introduction to unit testingIntroduction to unit testing
Introduction to unit testing
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 
Tech Meetup: How to solve 2 common problems in Android & iOS
Tech Meetup: How to solve 2 common problems in Android & iOSTech Meetup: How to solve 2 common problems in Android & iOS
Tech Meetup: How to solve 2 common problems in Android & iOS
 
Gestor de replicas básico en java
Gestor de replicas básico en java Gestor de replicas básico en java
Gestor de replicas básico en java
 
Cómo migrar de source safe a team foundation server 2010
Cómo migrar de source safe a team foundation server 2010Cómo migrar de source safe a team foundation server 2010
Cómo migrar de source safe a team foundation server 2010
 

Destacado (20)

Aparato reproductor masculino
Aparato reproductor masculinoAparato reproductor masculino
Aparato reproductor masculino
 
Apa, mkt intern.
Apa, mkt intern.Apa, mkt intern.
Apa, mkt intern.
 
Trazo de números
Trazo de númerosTrazo de números
Trazo de números
 
Culturaciudadanaunidad1 0809-130223214448-phpapp01
Culturaciudadanaunidad1 0809-130223214448-phpapp01Culturaciudadanaunidad1 0809-130223214448-phpapp01
Culturaciudadanaunidad1 0809-130223214448-phpapp01
 
Trabajo practico seminario_operador-2_combined
Trabajo practico seminario_operador-2_combinedTrabajo practico seminario_operador-2_combined
Trabajo practico seminario_operador-2_combined
 
SLIDESHARE
SLIDESHARESLIDESHARE
SLIDESHARE
 
Curriculo
Curriculo Curriculo
Curriculo
 
Ecorregiones piura
Ecorregiones piuraEcorregiones piura
Ecorregiones piura
 
Segojoven nº3
Segojoven nº3Segojoven nº3
Segojoven nº3
 
La metodología pacie optativa 3
La metodología pacie optativa 3La metodología pacie optativa 3
La metodología pacie optativa 3
 
Sintesis financiera (16 03-2015)
Sintesis financiera (16 03-2015)Sintesis financiera (16 03-2015)
Sintesis financiera (16 03-2015)
 
EXPERIENCIA SECOND LIFE
EXPERIENCIA SECOND LIFEEXPERIENCIA SECOND LIFE
EXPERIENCIA SECOND LIFE
 
Manual terminado
Manual terminadoManual terminado
Manual terminado
 
Imperio bizantino
Imperio bizantinoImperio bizantino
Imperio bizantino
 
Signo lingüístico
Signo lingüísticoSigno lingüístico
Signo lingüístico
 
Como cambiar la plantilla en el blog
Como cambiar la plantilla en el blogComo cambiar la plantilla en el blog
Como cambiar la plantilla en el blog
 
Composición para Navidad.
Composición para Navidad.Composición para Navidad.
Composición para Navidad.
 
Qué es una variable
Qué es una variableQué es una variable
Qué es una variable
 
Problemas3
Problemas3Problemas3
Problemas3
 
Pauta para ensayo histórico
Pauta para ensayo históricoPauta para ensayo histórico
Pauta para ensayo histórico
 

Similar a Maven

Lp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de DesarrolloLp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de DesarrolloAngelDX
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Leonardo J. Caballero G.
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJSRodrigo Pimentel
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con MavenEudris Cabrera
 
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
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Modernowpargentina
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyJorge Antonio Linares Vera
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
Proyectos JAVA con maven
Proyectos JAVA con mavenProyectos JAVA con maven
Proyectos JAVA con mavenJuan Vladimir
 
Proyectos java-con-maven
Proyectos java-con-mavenProyectos java-con-maven
Proyectos java-con-mavenJuan Vladimir
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaglfloresgilberto
 
Ingeniería de pruebas en arquitectura cliente-servidor
Ingeniería de pruebas en arquitectura cliente-servidorIngeniería de pruebas en arquitectura cliente-servidor
Ingeniería de pruebas en arquitectura cliente-servidorMauro Parra-Miranda
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event managerIvan Ortega
 

Similar a Maven (20)

Lp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de DesarrolloLp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de Desarrollo
 
Maven Overview
Maven OverviewMaven Overview
Maven Overview
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
Open Build Service
Open Build ServiceOpen Build Service
Open Build Service
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Introduccion Java.ppt
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.ppt
 
Proyectos JAVA con maven
Proyectos JAVA con mavenProyectos JAVA con maven
Proyectos JAVA con maven
 
Proyectos java-con-maven
Proyectos java-con-mavenProyectos java-con-maven
Proyectos java-con-maven
 
ATICA DevOps
ATICA DevOpsATICA DevOps
ATICA DevOps
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Ingeniería de pruebas en arquitectura cliente-servidor
Ingeniería de pruebas en arquitectura cliente-servidorIngeniería de pruebas en arquitectura cliente-servidor
Ingeniería de pruebas en arquitectura cliente-servidor
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event manager
 
Gestión de proyectos con Maven
Gestión de proyectos con MavenGestión de proyectos con Maven
Gestión de proyectos con Maven
 

Último

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
 
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
 
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 JUNITMaricarmen Sánchez Ruiz
 
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
 
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
 
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
 
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.pdfJulian Lamprea
 
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.pptxLolaBunny11
 
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
 
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
 

Último (10)

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

Maven

  • 2. Lo que tengo ● Tengo una aplicación que usa jars de múltiples librerías. ● Algunas de las librerías tienen que ser incluidas en el paquete generado (JAR, WAR, EAR, AAR ...) y otras no. ● Algunas librerías tienen que estar disponibles en entorno de desarrollo y luego deben estar presentes en el runtime del servidor. ● Algunas librerías dependen de otras librerías (y otras de algunas). ● Tengo múltiples desarrolladores que trabajan sobre el mismo fuente.
  • 3. Lo que quiero ● Quiero poder incorporar fácilmente a otro desarrollador al proyecto pero no quiero tener que pasarle ~100MB de librerías. ● Quiero que generar el EAR sea fácil y rápido a partir de los fuentes y que no dependa de la máquina del desarrollador. ● Quiero poder ejecutar constantemente las pruebas unitarias para asegurar que los cambios que voy haciendo no afecten funcionalidad anterior. ● Quiero tener métricas de calidad del fuente actualizados para conocer el nivel de calidad del software. ● Quiero tener una versión actualizada de la documentación.
  • 4. ¿Qué es maven? ● Estandariza, facilita y apoya el ciclo de vida de builds de una aplicación. ○ validate - validar que el proyecto es correcto y que toda la información necesaria está presente. ○ compile - compilar el código fuente ○ test - ejecutar pruebas unitarias sin la necesidad de empaquetar y desplegar la aplicación ○ package - generar un paquete distribuible (jar, war, ear ...) ○ integration-test - procesar y desplegar el empaquetado en un ambiente donde se ejecute pruebas de integración ○ verify - validar que el empaquetado satisface criterios de calidad ○ install - instalar el paquete el el repositorio local ○ deploy - en ambiente de integración de release se copia el empaquetado final a un repositorio remoto para compartir con otros desarrolladores
  • 5. ¿Qué hace maven? ● Permite crear proyectos en base a plantillas preexistentes (y crear las propias). ● Describe el proyecto y sus dependencias declarativamente (POM). ● Administra dependencias (y dependencias de las dependencias). ● Genera empaquetados de manera uniforme. ● Genera documentación a partir de los fuentes. ● Reportes de calidad de código. ● Extensible a través de plugins. ● Convención sobre configuración. Todos los defaults son modificables. ● Integración con sistemas de control de versiones e integración continua.