[apache barcamp 2011] introducción a maven

Download [Apache Barcamp 2011] Introducción a Maven

If you can't read please download the document

Upload: alejandro-diaz

Post on 16-Apr-2017

428 views

Category:

Technology


6 download

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