Prsentation de Maven 2 Outil de build et
Présentation de Maven 2 Outil de build et de gestion de projet 10/04/2007 Denis Cabasson – Présentation de Maven 2
Plan de la présentation 1. 2. 3. 4. Principe de Maven 2 Le POM Architecture de Maven 2 Les principaux plugins 10/04/2007 Denis Cabasson - Présentation de Maven 2
Historique n n n Top projet Apache : http: //maven. apache. org Version actuelle : 2. 0. 6, mais la 1. x est encore maintenue Créé il y a 5 ans pour gérer le build de turbine (framework de portail web de jakarta) 1. x : gère le build de tous les projets Apache 2. x : gère le build de Geronimo, Struts, Maven Créé par Jason Van Zyl (Mergere) 10/04/2007 Denis Cabasson - Présentation de Maven 2
Principe de Maven 2 n n n Gestion du build de projet : semblable à Ant Déclaration plutôt que construction du build Meta données complètes sur le projet 10/04/2007 Denis Cabasson - Présentation de Maven 2
Principe de Maven 2 Code Source Processus de Build Artefact 10/04/2007 Denis Cabasson - Présentation de Maven 2
Principe de Maven 2 generate-sources process-sources Code Source process-resources compile test-compile test package integration-test verify install 10/04/2007 Denis Cabasson - Présentation de Maven 2 Artefact
Le POM Un projet est décrit par un fichier XML mettant le projet en place, appelé POM (Projet Object Model) Principe de « convention over configuration » 10/04/2007 Denis Cabasson - Présentation de Maven 2
Le POM 10/04/2007 Denis Cabasson - Présentation de Maven 2
Le POM : Arborescence par défaut 10/04/2007 Denis Cabasson - Présentation de Maven 2
Le POM : Gestion des dépendances n n n Partie dependencies du POM Référentiel des artefacts : définition par group. Id / artifact. Id / packaging / version Résolution des dépendances transitives Construction du classpath Scopes possibles : compile, test, runtime, provided 10/04/2007 Denis Cabasson - Présentation de Maven 2
Le POM : Hiérarchies de projets n n n Projets parents définissant les défauts Projets aggrégateurs orchestrant les modules Sous répertoire par module enfant 10/04/2007 Denis Cabasson - Présentation de Maven 2
10/04/2007 Denis Cabasson - Présentation de Maven 2
Architecture de Maven 2 Gestion des dépendances POM Cycle de vie du projet Plugin Plugin Mojo Mojo Mojo 10/04/2007 Denis Cabasson - Présentation de Maven 2
Architecture de Maven 2 process-resources compile process-test-resources test-compile test package install deploy 10/04/2007 resources: resources compiler: compile resources: test. Resources compiler: test. Compile surefire: test jar: jar install: install deploy: deploy Denis Cabasson - Présentation de Maven 2
Architecture : Parallèle avec Eclipse Maven POM : compile package Code compilé assembly Jar du projet Artefact Code Source . classpath Export Assemblage manuel Eclipse 10/04/2007 Denis Cabasson - Présentation de Maven 2
Les principaux plugins 10/04/2007 Denis Cabasson - Présentation de Maven 2
Maven-eclipse-plugin n n Génère les meta-données eclipse à partir du POM (. classpath, . project) Compatible WTP (. components) Liaison avec les jars de sources Maven-netbeans-plugin également disponible 10/04/2007 Denis Cabasson - Présentation de Maven 2
Maven-assembly-plugin n Créé un artefact (zip, jar, …) pour déploiement et distribution Configuration par un descripteur XML Possibilité d’inclure les dépendances 10/04/2007 Denis Cabasson - Présentation de Maven 2
Maven-site-plugin n Génération d’un site de documentation à partir du POM et de données complémentaires Mise en page de site (moteur de template) formats d’entrée : xdoc, apt, fml Déploiement du site 10/04/2007 Denis Cabasson - Présentation de Maven 2
Maven-release-plugin n n Gère la publication de versions du projets Enchaîne automatiquement les taches nécessaires : q q q n Contrôle par rapport au SCM Mise en place des versions stables Vérification du build Tag sur le SCM Repassage en version de développement Publication des packages à l’aide de la version tagguée 10/04/2007 Denis Cabasson - Présentation de Maven 2
Autres projets de Maven n n n Continuum : Serveur d’intégration continue Archiva : Gestion des référentiels Modello : Génération de modèles XML SCM : Intégration avec le SCM Wagon : Outil de transfert Doxia : génération de contenu 10/04/2007 Denis Cabasson - Présentation de Maven 2
Plus d’informations n n http: //java. developpez. com/faq/maven/ http: //maven. apache. org 10/04/2007 Denis Cabasson - Présentation de Maven 2
- Slides: 22