SlideShare una empresa de Scribd logo
1 de 28
Apache Maven
                           Apache Barcamp Spain 2011
          www.emergya.es




                                        Sevilla, Octubre 2011




                                             En Twitter
                                          #charlamaven
                                           @ barcampes
Activos                                  @ alediaztorres
v1.0.1
Í ndice



      I.Introducció n
        I.¿Qué es?
        II.¿Para qué sirve?
      II. Conceptos bá     sicos
        I.El ciclo de vida
        II.Project Object Model (pom.xml)
      III. Utilizando Maven
        I.Gestió n de dependencias
        II.Arquetipos
        III.Empaquetado y publicació n
        IV.Despliegues y parametrizació n
        V.Utilidades



Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres   2
Í ndice


      I.Introducció n
        I.¿Qué es?
        II.¿Para qué sirve?
      II. Conceptos bá sicos
      III. Utilizando Maven




Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres   3
Introducció n

                                       Conceptos
Í NDICE
1. Introducció n         Apache Maven : Herramienta de software
  1.¿Qué es?
   2. ¿Para qué sirve?   de gestió n de proyectos Java.
2. Conceptos bá sicos
3. Utilizando Maven
                         Pom ( Project Object Model): Fichero que
                         describe la informació n y configuració n del
                         proyecto Maven.

                         Artefacto : Proyecto Java definido a travé s
                         de un pom.xml e identificado por artifactId,
                         groupId y version
                         Repositorio : Conjunto de artefactos
                         Arquetipo : Plantilla para la creació n de un
                         proyecto Maven.




Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                       4
Introducció n

                                Gestió n de proyectos Java
Í NDICE
1. Introducció n
                         ➢   Ciclo de vida
  1.¿Qué es?
   2. ¿Para qué sirve?
                         ➢   Dependencias y reutilizació n
2. Conceptos bá sicos
3. Utilizando Maven      ➢   Perfiles
                         ➢   Uso de IDEs
                         ➢   Automatizació n de tareas




Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                   5
Introducció n

                            Carácterísticas de Apache Maven
Í NDICE                 ➢   Gestió n de dependencias
1. Introducció n
   1. ¿Qué es?
  2.¿Para qué           ➢   Arquetipos
    sirve?
2. Conceptos bá sicos   ➢   Empaquetado y reutilizació n
3. Utilizando Maven
                        ➢   Despliegues y parametrizació n
                        ➢   Utilidades




Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                   6
Introducció n

                               Síndrome de la hoja en blanco
Í NDICE
1. Introducció n        ¿Por dó nde empiezo?
   1. ¿Qué es?
  2.¿Para qué           ➢   ¿Qué quiero conseguir?
    sirve?
2. Conceptos bá sicos   ➢   ¿Con qué herramientas?
3. Utilizando Maven
                        ➢   ¿Qué partes quiero poder reutilizar?



                                               Puntos de partida
                                                ➢   San Google
                                                ➢   Repositorios de archetipos
                                                ➢   Modularizació n




Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                             7
Í ndice


      I.Introducció n
      II. Conceptos bá     sicos
        I.El ciclo de vida
        II.Project Object Model (pom.xml)
      III. Utilizando Maven




Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres   8
Conceptos básicos

                                      El ciclo de vida
Í NDICE                 ➢   Diferente en cada empaquetado
 1. Introducció n
 2. Conceptos
    básicos
                        ➢   Extensible a travé s de plugins
   1.El ciclo de
     vida               ➢   Inclusió n de fases anteriores
   2. Project Object
      Model (pom.xml)
   3. Estructura
                        ➢   Ejecució n en entornos multi-
3. Utilizando Maven         mó dulo




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                       9
Conceptos básicos

                              Project Object Model (pom.xml)
Í NDICE
 1. Introducció n
 2. Conceptos
                          ➢   Project information
    básicos
    1. El ciclo de vida   ➢   Builds
   2. Project Object
      Model
      (pom.xml)
                          ➢   Profiles
   3. Estructura
3. Utilizando Maven       ➢   Modules
                          ➢   Plugins
                          ➢   Repositorios




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                       10
Conceptos básicos: pom.xml

                                Project Information
Í NDICE
 1. Introducció n
 2. Conceptos
    básicos
    1. El ciclo de vida
   2. Project Object
      Model
      (pom.xml)
   3. Estructura
3. Utilizando Maven




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                         11
Conceptos básicos: pom.xml

                                        Builds
Í NDICE
 1. Introducció n
 2. Conceptos
    básicos
    1. El ciclo de vida
   2. Project Object
      Model
      (pom.xml)
   3. Estructura
3. Utilizando Maven




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                         12
Conceptos básicos: pom.xml

                                       Profiles
Í NDICE
 1. Introducció n
 2. Conceptos
    básicos
    1. El ciclo de vida
   2. Project Object
      Model
      (pom.xml)
   3. Estructura
3. Utilizando Maven




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                         13
Conceptos básicos: pom.xml

                                       Plugins
Í NDICE
 1. Introducció n
 2. Conceptos
    básicos
    1. El ciclo de vida
   2. Project Object
      Model
      (pom.xml)
   3. Estructura
3. Utilizando Maven




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                         14
Conceptos básicos: pom.xml

                                    Repositorios
Í NDICE
 1. Introducció n
 2. Conceptos
    básicos
    1. El ciclo de vida
   2. Project Object
      Model
      (pom.xml)
   3. Estructura
3. Utilizando Maven




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                         15
Conceptos básicos

                                Estructura del proyecto
Í NDICE
 1. Introducció n         Con maven   Sin maven
 2. Conceptos
    básicos
    1. El ciclo de vida
    2. Project Object
       Model (pom.xml)
   3. Estructura
3. Utilizando Maven




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                       16
Í ndice


      I.Introducció n
      II. Conceptos bá sicos
      III. Utilizando Maven
        I.Gestió n de dependencias
        II.Arquetipos
        III.Empaquetado y publicació n
        IV.Despliegues y parametrizació n
        V.Utilidades




Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres   17
Utilizando Maven

                                     Sin Maven
Í NDICE
 1. Introducció n
 2. Conceptos bá  sicos
 3. Utilizando Maven
  1. Gestió n de
     dependencias
  2. Reutilizació n
  3. Empaquetado y
     publicació n
  4. Despliegues y
     parametrizació n
  5. Utilidades




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                      18
Utilizando Maven

                                     Con Maven
Í NDICE
 1. Introducció n
 2. Conceptos bá  sicos
 3. Utilizando Maven
  1. Gestió n de
     dependencias
  2. Reutilizació n
  3. Empaquetado y
     publicació n
  4. Despliegues y
     parametrizació n
  5. Utilidades




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                      19
Utilizando Maven

                                           Sin Maven
Í NDICE                   ➢   Para funcionalidades
 1. Introducció n              ➢ A partir del có digo fuente
 2. Conceptos bá  sicos
 3. Utilizando Maven             ➢ Abuso del copy-paste
    1. Gestió n de
       dependencias              ➢ Poco eficiente en entornos de desarrollo
  2. Reutilizació n              ➢ Uso de librerías
  3. Empaquetado y
     publicació n
  4. Despliegues y
     parametrizació n     ➢   Para proyectos completos
  5. Utilidades
                               ➢ Copia manual de la estructura y de las

                                 librerías
                          ➢   Dificultad para la actualizació n
                              ➢ Las librerías no cambian de proyecto a

                                proyecto

                          ➢   Soluciones intermedias
                               ➢ Scripts de sincronizació n

                               ➢ Uso de tareas Ant




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                         20
Utilizando Maven

                                           Con Maven
Í NDICE                   ➢   Para funcionalidades
 1. Introducció n             ➢ Inclusió n de dependencias
 2. Conceptos bá  sicos
 3. Utilizando Maven            ➢ Versiones estables o externas
    1. Gestió n de
                                ➢ Versiones intermedias propias
       dependencias
  2. Reutilizació n
  3. Empaquetado y
     publicació n         ➢   Para proyectos completos
  4. Despliegues y            ➢ Sin arquetipos
     parametrizació n
  5. Utilidades                 ➢ Copia manual del pom

                                ➢ Copia manual del có digo fuente

                              ➢ Con arquetipos

                                ➢ Definen un pom de partida

                                ➢ Incluyen có digo fuente de partida




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                            21
Utilizando Maven

                                  Empaquetado y publicació n
Í NDICE
 1. Introducció n
                        Repositorios espejo
 2. Conceptos bá  sicos
 3. Utilizando Maven      ➢   Centralizació n de recursos
    1. Gestió n de
       dependencias
    2. Reutilizació n
                          ➢   Snapshots
  3. Empaquetado
     y publicació n       ➢   Repositorios
  4. Despliegues y
     parametrizació n
  5. Utilidades

                                               Deploy
                                                ➢   Usuario
                                                ➢   Distribution-management
                                                ➢   No me actualiza




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                           22
Utilizando Maven

                               Despliegues y parametrizació n
Í NDICE
 1. Introducció n         ➢   Configuració n de perfiles de
                              Uso de diferentes determinadas
 2. Conceptos bá  sicos
 3. Utilizando Maven
                              tareas para
                              despliegue perfiles específicos
    1. Gestió n de
       dependencias
    2. Reutilizació n
    3. Empaquetado y
       publicació n
  4. Despliegues y
     parametrizació
     n
  5. Utilidades




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                      23
Utilizando Maven

                                        Pruebas unitarias
Í NDICE
 1. Introducció n
                          ➢    Test Junit
 2. Conceptos bá  sicos
 3. Utilizando Maven
                          ➢    Ejecució n
    1. Gestió n de            ➢ mvn test
       dependencias
    2. Reutilizació n     ➢    Parametrizació n
    3. Empaquetado y
       publicació n       ➢    Resultados
    4. Despliegues y
       parametrizació n
  5. Utilidades




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                      24
Utilizando Maven

                                          Plugins para Maven
Í NDICE
 1. Introducció n
                          ➢   Core
 2. Conceptos bá  sicos
 3. Utilizando Maven          ➢  Surefire
    1. Gestió n de
       dependencias            ➢ Site
    2. Reutilizació n
    3. Empaquetado y      ➢   Packaging
       publicació n
    4. Despliegues y
       parametrizació n   ➢   Reporting
  5. Utilidades
                              ➢  Javadoc
                               ➢ Surefire-report
                          ➢   Tools
                              ➢  Arquetype
                          ➢   Otros proveedores
                              ➢   Jetty



 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                      25
Utilidades

                                     Plugins para Eclipse
Í NDICE
 1. Introducció n
 2. Conceptos bá  sicos                                      IAM (q4e)
 3. Utilizando Maven
    1. Gestió n de
       dependencias
    2. Reutilizació n      Pros
    3. Empaquetado y                                  Pros
       publicació n
                            ➢ Es el más extendido      ➢ Es más vistoso
    4. Despliegues y        ➢ Más robusto              ➢ Ofrece más funcionalidades
       parametrizació n
  5. Utilidades


                          Contras                      Contras
                           ➢  Algo soso                 ➢ Más inestable
                           ➢  Se echan en falta algunas
                             funcionalidades




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                          26
Utilizando Maven

                                     Integració n continua
Í NDICE
 1. Introducció n
                          ➢   Jenkins
 2. Conceptos bá  sicos
 3. Utilizando Maven          ➢   Monitoriza los repositorios
    1. Gestió n de
       dependencias           ➢   Compila y despliega los
    2. Reutilizació n
    3. Empaquetado y              artefactos
       publicació n
    4. Despliegues y          ➢   Pruebas unitarias
       parametrizació n
  5. Utilidades                    ➢ Las ejecuta


                                   ➢ Publica los resultados




 Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres                      27
Gracias por su atenció n
                               ¿Preguntas?

                                        Más informació n:
        https://github.com/alediator/barcamp-maven
      Alejandro Díaz Torres <adiaz@ emergya.com>




Avenida de la Innovació n · 3 · C.P. 41020 · SEVILLA · Tel. 954 51 75 77 · 951 21 04 00 · Fax. 954 51 64 73 ·
                                               www.emergya.es

Más contenido relacionado

Similar a [Apache Barcamp 2011] Introducción a Maven

Similar a [Apache Barcamp 2011] Introducción a Maven (20)

Programación del curso inf212 - POO
Programación del curso inf212 - POOProgramación del curso inf212 - POO
Programación del curso inf212 - POO
 
S1 ds2
S1 ds2S1 ds2
S1 ds2
 
Utp sirn_sl6 la rna perceptron multicapa
 Utp sirn_sl6 la rna perceptron multicapa Utp sirn_sl6 la rna perceptron multicapa
Utp sirn_sl6 la rna perceptron multicapa
 
Python con baterias incluídas
Python con baterias incluídasPython con baterias incluídas
Python con baterias incluídas
 
Fundamentos de Java
Fundamentos de Java Fundamentos de Java
Fundamentos de Java
 
Syllabus fundamentals I
Syllabus fundamentals ISyllabus fundamentals I
Syllabus fundamentals I
 
S1-DS2.pptx
S1-DS2.pptxS1-DS2.pptx
S1-DS2.pptx
 
J hipster
J hipsterJ hipster
J hipster
 
Presentación evernote
Presentación evernotePresentación evernote
Presentación evernote
 
Curso online Javascript
Curso online JavascriptCurso online Javascript
Curso online Javascript
 
Curso online-cnet-lw
Curso online-cnet-lwCurso online-cnet-lw
Curso online-cnet-lw
 
Taller de kumbiaPHP Mexico ITSJR
Taller de kumbiaPHP Mexico ITSJRTaller de kumbiaPHP Mexico ITSJR
Taller de kumbiaPHP Mexico ITSJR
 
Virtualenv
VirtualenvVirtualenv
Virtualenv
 
Virtualenv
VirtualenvVirtualenv
Virtualenv
 
Manual de PHP Basico
Manual de PHP BasicoManual de PHP Basico
Manual de PHP Basico
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C Sharp
 
LibFree or Die Hard
LibFree or Die HardLibFree or Die Hard
LibFree or Die Hard
 
Java desde cero maven
Java desde cero mavenJava desde cero maven
Java desde cero maven
 
Curso Java con Rational para WebSphere
Curso Java con Rational para WebSphereCurso Java con Rational para WebSphere
Curso Java con Rational para WebSphere
 
Spipedu - 10 Febrero
Spipedu - 10 FebreroSpipedu - 10 Febrero
Spipedu - 10 Febrero
 

Último

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
 
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
 
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
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
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
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Último (15)

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
 
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
 
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
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
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
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
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
 
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
 
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
 
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
 
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
 
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...
 
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)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

[Apache Barcamp 2011] Introducción a Maven

  • 1. Apache Maven Apache Barcamp Spain 2011 www.emergya.es Sevilla, Octubre 2011 En Twitter #charlamaven @ barcampes Activos @ alediaztorres v1.0.1
  • 2. Í ndice I.Introducció n I.¿Qué es? II.¿Para qué sirve? II. Conceptos bá sicos I.El ciclo de vida II.Project Object Model (pom.xml) III. Utilizando Maven I.Gestió n de dependencias II.Arquetipos III.Empaquetado y publicació n IV.Despliegues y parametrizació n V.Utilidades Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 2
  • 3. Í ndice I.Introducció n I.¿Qué es? II.¿Para qué sirve? II. Conceptos bá sicos III. Utilizando Maven Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 3
  • 4. Introducció n Conceptos Í NDICE 1. Introducció n Apache Maven : Herramienta de software 1.¿Qué es? 2. ¿Para qué sirve? de gestió n de proyectos Java. 2. Conceptos bá sicos 3. Utilizando Maven Pom ( Project Object Model): Fichero que describe la informació n y configuració n del proyecto Maven. Artefacto : Proyecto Java definido a travé s de un pom.xml e identificado por artifactId, groupId y version Repositorio : Conjunto de artefactos Arquetipo : Plantilla para la creació n de un proyecto Maven. Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 4
  • 5. Introducció n Gestió n de proyectos Java Í NDICE 1. Introducció n ➢ Ciclo de vida 1.¿Qué es? 2. ¿Para qué sirve? ➢ Dependencias y reutilizació n 2. Conceptos bá sicos 3. Utilizando Maven ➢ Perfiles ➢ Uso de IDEs ➢ Automatizació n de tareas Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 5
  • 6. Introducció n Carácterísticas de Apache Maven Í NDICE ➢ Gestió n de dependencias 1. Introducció n 1. ¿Qué es? 2.¿Para qué ➢ Arquetipos sirve? 2. Conceptos bá sicos ➢ Empaquetado y reutilizació n 3. Utilizando Maven ➢ Despliegues y parametrizació n ➢ Utilidades Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 6
  • 7. Introducció n Síndrome de la hoja en blanco Í NDICE 1. Introducció n ¿Por dó nde empiezo? 1. ¿Qué es? 2.¿Para qué ➢ ¿Qué quiero conseguir? sirve? 2. Conceptos bá sicos ➢ ¿Con qué herramientas? 3. Utilizando Maven ➢ ¿Qué partes quiero poder reutilizar? Puntos de partida ➢ San Google ➢ Repositorios de archetipos ➢ Modularizació n Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 7
  • 8. Í ndice I.Introducció n II. Conceptos bá sicos I.El ciclo de vida II.Project Object Model (pom.xml) III. Utilizando Maven Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 8
  • 9. Conceptos básicos El ciclo de vida Í NDICE ➢ Diferente en cada empaquetado 1. Introducció n 2. Conceptos básicos ➢ Extensible a travé s de plugins 1.El ciclo de vida ➢ Inclusió n de fases anteriores 2. Project Object Model (pom.xml) 3. Estructura ➢ Ejecució n en entornos multi- 3. Utilizando Maven mó dulo Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 9
  • 10. Conceptos básicos Project Object Model (pom.xml) Í NDICE 1. Introducció n 2. Conceptos ➢ Project information básicos 1. El ciclo de vida ➢ Builds 2. Project Object Model (pom.xml) ➢ Profiles 3. Estructura 3. Utilizando Maven ➢ Modules ➢ Plugins ➢ Repositorios Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 10
  • 11. Conceptos básicos: pom.xml Project Information Í NDICE 1. Introducció n 2. Conceptos básicos 1. El ciclo de vida 2. Project Object Model (pom.xml) 3. Estructura 3. Utilizando Maven Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 11
  • 12. Conceptos básicos: pom.xml Builds Í NDICE 1. Introducció n 2. Conceptos básicos 1. El ciclo de vida 2. Project Object Model (pom.xml) 3. Estructura 3. Utilizando Maven Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 12
  • 13. Conceptos básicos: pom.xml Profiles Í NDICE 1. Introducció n 2. Conceptos básicos 1. El ciclo de vida 2. Project Object Model (pom.xml) 3. Estructura 3. Utilizando Maven Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 13
  • 14. Conceptos básicos: pom.xml Plugins Í NDICE 1. Introducció n 2. Conceptos básicos 1. El ciclo de vida 2. Project Object Model (pom.xml) 3. Estructura 3. Utilizando Maven Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 14
  • 15. Conceptos básicos: pom.xml Repositorios Í NDICE 1. Introducció n 2. Conceptos básicos 1. El ciclo de vida 2. Project Object Model (pom.xml) 3. Estructura 3. Utilizando Maven Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 15
  • 16. Conceptos básicos Estructura del proyecto Í NDICE 1. Introducció n Con maven Sin maven 2. Conceptos básicos 1. El ciclo de vida 2. Project Object Model (pom.xml) 3. Estructura 3. Utilizando Maven Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 16
  • 17. Í ndice I.Introducció n II. Conceptos bá sicos III. Utilizando Maven I.Gestió n de dependencias II.Arquetipos III.Empaquetado y publicació n IV.Despliegues y parametrizació n V.Utilidades Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 17
  • 18. Utilizando Maven Sin Maven Í NDICE 1. Introducció n 2. Conceptos bá sicos 3. Utilizando Maven 1. Gestió n de dependencias 2. Reutilizació n 3. Empaquetado y publicació n 4. Despliegues y parametrizació n 5. Utilidades Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 18
  • 19. Utilizando Maven Con Maven Í NDICE 1. Introducció n 2. Conceptos bá sicos 3. Utilizando Maven 1. Gestió n de dependencias 2. Reutilizació n 3. Empaquetado y publicació n 4. Despliegues y parametrizació n 5. Utilidades Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 19
  • 20. Utilizando Maven Sin Maven Í NDICE ➢ Para funcionalidades 1. Introducció n ➢ A partir del có digo fuente 2. Conceptos bá sicos 3. Utilizando Maven ➢ Abuso del copy-paste 1. Gestió n de dependencias ➢ Poco eficiente en entornos de desarrollo 2. Reutilizació n ➢ Uso de librerías 3. Empaquetado y publicació n 4. Despliegues y parametrizació n ➢ Para proyectos completos 5. Utilidades ➢ Copia manual de la estructura y de las librerías ➢ Dificultad para la actualizació n ➢ Las librerías no cambian de proyecto a proyecto ➢ Soluciones intermedias ➢ Scripts de sincronizació n ➢ Uso de tareas Ant Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 20
  • 21. Utilizando Maven Con Maven Í NDICE ➢ Para funcionalidades 1. Introducció n ➢ Inclusió n de dependencias 2. Conceptos bá sicos 3. Utilizando Maven ➢ Versiones estables o externas 1. Gestió n de ➢ Versiones intermedias propias dependencias 2. Reutilizació n 3. Empaquetado y publicació n ➢ Para proyectos completos 4. Despliegues y ➢ Sin arquetipos parametrizació n 5. Utilidades ➢ Copia manual del pom ➢ Copia manual del có digo fuente ➢ Con arquetipos ➢ Definen un pom de partida ➢ Incluyen có digo fuente de partida Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 21
  • 22. Utilizando Maven Empaquetado y publicació n Í NDICE 1. Introducció n Repositorios espejo 2. Conceptos bá sicos 3. Utilizando Maven ➢ Centralizació n de recursos 1. Gestió n de dependencias 2. Reutilizació n ➢ Snapshots 3. Empaquetado y publicació n ➢ Repositorios 4. Despliegues y parametrizació n 5. Utilidades Deploy ➢ Usuario ➢ Distribution-management ➢ No me actualiza Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 22
  • 23. Utilizando Maven Despliegues y parametrizació n Í NDICE 1. Introducció n ➢ Configuració n de perfiles de Uso de diferentes determinadas 2. Conceptos bá sicos 3. Utilizando Maven tareas para despliegue perfiles específicos 1. Gestió n de dependencias 2. Reutilizació n 3. Empaquetado y publicació n 4. Despliegues y parametrizació n 5. Utilidades Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 23
  • 24. Utilizando Maven Pruebas unitarias Í NDICE 1. Introducció n ➢ Test Junit 2. Conceptos bá sicos 3. Utilizando Maven ➢ Ejecució n 1. Gestió n de ➢ mvn test dependencias 2. Reutilizació n ➢ Parametrizació n 3. Empaquetado y publicació n ➢ Resultados 4. Despliegues y parametrizació n 5. Utilidades Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 24
  • 25. Utilizando Maven Plugins para Maven Í NDICE 1. Introducció n ➢ Core 2. Conceptos bá sicos 3. Utilizando Maven ➢ Surefire 1. Gestió n de dependencias ➢ Site 2. Reutilizació n 3. Empaquetado y ➢ Packaging publicació n 4. Despliegues y parametrizació n ➢ Reporting 5. Utilidades ➢ Javadoc ➢ Surefire-report ➢ Tools ➢ Arquetype ➢ Otros proveedores ➢ Jetty Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 25
  • 26. Utilidades Plugins para Eclipse Í NDICE 1. Introducció n 2. Conceptos bá sicos IAM (q4e) 3. Utilizando Maven 1. Gestió n de dependencias 2. Reutilizació n Pros 3. Empaquetado y Pros publicació n ➢ Es el más extendido ➢ Es más vistoso 4. Despliegues y ➢ Más robusto ➢ Ofrece más funcionalidades parametrizació n 5. Utilidades Contras Contras ➢ Algo soso ➢ Más inestable ➢ Se echan en falta algunas funcionalidades Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 26
  • 27. Utilizando Maven Integració n continua Í NDICE 1. Introducció n ➢ Jenkins 2. Conceptos bá sicos 3. Utilizando Maven ➢ Monitoriza los repositorios 1. Gestió n de dependencias ➢ Compila y despliega los 2. Reutilizació n 3. Empaquetado y artefactos publicació n 4. Despliegues y ➢ Pruebas unitarias parametrizació n 5. Utilidades ➢ Las ejecuta ➢ Publica los resultados Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres 27
  • 28. Gracias por su atenció n ¿Preguntas? Más informació n: https://github.com/alediator/barcamp-maven Alejandro Díaz Torres <adiaz@ emergya.com> Avenida de la Innovació n · 3 · C.P. 41020 · SEVILLA · Tel. 954 51 75 77 · 951 21 04 00 · Fax. 954 51 64 73 · www.emergya.es