[apache barcamp 2011] introducción a maven
TRANSCRIPT
Diapositiva 1
Apache Maven
Apache Barcamp Spain 2011
Sevilla, Octubre 2011
Activos
v1.0.1En Twitter:#charlamaven@barcampes@alediaztorres
ndiceIntroduccinQu es?
Para qu sirve?
Conceptos bsicosEl ciclo de vida
Project Object Model (pom.xml)
Utilizando MavenGestin de dependencias
Arquetipos
Empaquetado y publicacin
Despliegues y parametrizacin
Utilidades
ndiceIntroduccinQu es?
Para qu sirve?
Conceptos bsicos
Utilizando Maven
Pom (Project Object Model): Fichero que describe la informacin y configuracin del proyecto Maven.
Introduccin
Conceptos
NDICEIntroduccinQu es?
Para qu sirve?
Conceptos bsicos
Utilizando Maven
Apache Maven: Herramienta de software de gestin de proyectos Java.
Artefacto: Proyecto Java definido a travs de un pom.xml e identificado por artifactId, groupId y version
Repositorio: Conjunto de artefactos
Arquetipo: Plantilla para la creacin de un proyecto Maven.
Ciclo de vida
Dependencias y reutilizacin
Perfiles
Uso de IDEs
Automatizacin de tareas
Introduccin
Gestin de proyectos Java
NDICEIntroduccinQu es?
Para qu sirve?
Conceptos bsicos
Utilizando Maven
Gestin de dependencias
Arquetipos
Empaquetado y reutilizacin
Despliegues y parametrizacin
Utilidades
Introduccin
Carctersticas de Apache Maven
NDICEIntroduccinQu es?
Para qu sirve?
Conceptos bsicos
Utilizando Maven
Por dnde empiezo?Qu quiero conseguir?
Con qu herramientas?
Qu partes quiero poder reutilizar?
Introduccin
Sndrome de la hoja en blanco
Puntos de partidaSan Google
Repositorios de archetipos
Modularizacin
NDICEIntroduccinQu es?
Para qu sirve?
Conceptos bsicos
Utilizando Maven
ndiceIntroduccin
Conceptos bsicosEl ciclo de vida
Project Object Model (pom.xml)
Utilizando Maven
Conceptos bsicos
El ciclo de vida
Diferente en cada empaquetado
Extensible a travs de plugins
Inclusin de fases anteriores
Ejecucin en entornos multi-mdulo
NDICEIntroduccin
Conceptos bsicosEl ciclo de vida
Project Object Model (pom.xml)
Estructura
Utilizando Maven
Conceptos bsicos
Project Object Model (pom.xml)
Project information
Builds
Profiles
Modules
Plugins
Repositorios
NDICEIntroduccin
Conceptos bsicosEl ciclo de vida
Project Object Model (pom.xml)
Estructura
Utilizando Maven
Conceptos bsicos: pom.xml
Project Information
NDICEIntroduccin
Conceptos bsicosEl ciclo de vida
Project Object Model (pom.xml)
Estructura
Utilizando Maven
Conceptos bsicos: pom.xml
Builds
NDICEIntroduccin
Conceptos bsicosEl ciclo de vida
Project Object Model (pom.xml)
Estructura
Utilizando Maven
Conceptos bsicos: pom.xml
Profiles
NDICEIntroduccin
Conceptos bsicosEl ciclo de vida
Project Object Model (pom.xml)
Estructura
Utilizando Maven
Conceptos bsicos: pom.xml
Plugins
NDICEIntroduccin
Conceptos bsicosEl ciclo de vida
Project Object Model (pom.xml)
Estructura
Utilizando Maven
Conceptos bsicos: pom.xml
Repositorios
NDICEIntroduccin
Conceptos bsicosEl ciclo de vida
Project Object Model (pom.xml)
Estructura
Utilizando Maven
Conceptos bsicos
Estructura del proyecto
Sin maven
NDICEIntroduccin
Conceptos bsicosEl ciclo de vida
Project Object Model (pom.xml)
Estructura
Utilizando Maven
Con maven
ndiceIntroduccin
Conceptos bsicos
Utilizando MavenGestin de dependencias
Arquetipos
Empaquetado y publicacin
Despliegues y parametrizacin
Utilidades
Utilizando Maven
Sin Maven
NDICEIntroduccin
Conceptos bsicos
Utilizando MavenGestin de dependencias
Reutilizacin
Empaquetado y publicacin
Despliegues y parametrizacin
Utilidades
Utilizando Maven
Con Maven
NDICEIntroduccin
Conceptos bsicos
Utilizando MavenGestin de dependencias
Reutilizacin
Empaquetado y publicacin
Despliegues y parametrizacin
Utilidades
Utilizando Maven
Sin Maven
NDICEIntroduccin
Conceptos bsicos
Utilizando MavenGestin de dependencias
Reutilizacin
Empaquetado y publicacin
Despliegues y parametrizacin
Utilidades
Para funcionalidadesA partir del cdigo fuenteAbuso del copy-paste
Poco eficiente en entornos de desarrollo
Uso de libreras
Para proyectos completosCopia manual de la estructura y de las libreras
Dificultad para la actualizacinLas libreras no cambian de proyecto a proyecto
Soluciones intermediasScripts de sincronizacin
Uso de tareas Ant
Utilizando Maven
Con Maven
NDICEIntroduccin
Conceptos bsicos
Utilizando MavenGestin de dependencias
Reutilizacin
Empaquetado y publicacin
Despliegues y parametrizacin
Utilidades
Para funcionalidadesInclusin de dependenciasVersiones estables o externas
Versiones intermedias propias
Para proyectos completosSin arquetiposCopia manual del pom
Copia manual del cdigo fuente
Con arquetiposDefinen un pom de partida
Incluyen cdigo fuente de partida
Repositorios espejoCentralizacin de recursos
Snapshots
Repositorios
Utilizando Maven
Empaquetado y publicacin
DeployUsuario
Distribution-management
No me actualiza
NDICEIntroduccin
Conceptos bsicos
Utilizando MavenGestin de dependencias
Reutilizacin
Empaquetado y publicacin
Despliegues y parametrizacin
Utilidades
Uso de diferentes perfiles de despliegue
Utilizando Maven
Despliegues y parametrizacin
NDICEIntroduccin
Conceptos bsicos
Utilizando MavenGestin de dependencias
Reutilizacin
Empaquetado y publicacin
Despliegues y parametrizacin
Utilidades
Configuracin de determinadas tareas para perfiles especficos
Utilizando Maven
Pruebas unitarias
NDICEIntroduccin
Conceptos bsicos
Utilizando MavenGestin de dependencias
Reutilizacin
Empaquetado y publicacin
Despliegues y parametrizacin
Utilidades
Test Junit
Ejecucin
Parametrizacin
mvn test
Resultados
Utilizando Maven
Plugins para Maven
NDICEIntroduccin
Conceptos bsicos
Utilizando MavenGestin de dependencias
Reutilizacin
Empaquetado y publicacin
Despliegues y parametrizacin
Utilidades
CoreSurefire
Site
Packaging
ReportingJavadoc
Surefire-report
ToolsArquetype
Otros proveedoresJetty
Utilidades
Plugins para Eclipse
IAM (q4e)
Pros Es el ms extendido
Ms robusto
Pros Es ms vistoso
Ofrece ms funcionalidades
Contras Algo soso
Se echan en falta algunas funcionalidades
Contras Ms inestable
NDICEIntroduccin
Conceptos bsicos
Utilizando MavenGestin de dependencias
Reutilizacin
Empaquetado y publicacin
Despliegues y parametrizacin
Utilidades
Utilizando Maven
Integracin continua
NDICEIntroduccin
Conceptos bsicos
Utilizando MavenGestin de dependencias
Reutilizacin
Empaquetado y publicacin
Despliegues y parametrizacin
Utilidades
JenkinsMonitoriza los repositorios
Compila y despliega los artefactos
Pruebas unitariasLas ejecuta
Publica los resultados
Avenida de la Innovacin 3 C.P. 41020 SEVILLA Tel. 954 51 75 77 951 21 04 00 Fax. 954 51 64 73 www.emergya.es
Gracias por su atencinPreguntas?
Ms informacin:https://github.com/alediator/barcamp-mavenAlejandro Daz Torres
www.emergya.es
Avenida de la Innovacin 3 C.P. 41020 SEVILLA Tel. 954 51 75 77 951 21 04 00 Fax. 954 51 64 73 www.emergya.es
Apache Barcamp Spain | #charlamaven @barcampes @alediaztorres