Déjeuner Technique   Nantes             Apache Maven 3.x                      http://maven.apache.orgMaxime Gréau         ...
Maxime Gréau                        Architecte Java EE                            Service des Retraites de lÉtat          ...
SommairePrésentation de Apache MavenCycle de vie / DépendancesMaven dans un contexte professionnelMaven 2 vs Maven 3.0.x v...
Définition Apache Maven est un logiciel de gestion de projets et unoutil de construction, basé sur :       le concept du P...
HistoriqueCréé par Jason Van Zyl (Sonatype)Apache Maven fête ses 10 ans en 2011Dernières releases :    Maven 2.0.11    Mav...
La communauté (ASF)                       Apache Software Foundation                          4 rôles principaux          ...
Le POM (Project Object Model) Descripteur du projet au format XML / 4 élémentsobligatoires :       modelVersion : précise ...
Le POM (Project Object Model)                                   5 catégories                                   1 Super POM...
Notions importantesRéférentiels (repositories) – Gestion des artefacts    Référentiel local (local repository)    Référent...
Infrastructure cible autour de Maven   Maxime Gréau                                10                                     ...
2e partiePrésentation de Apache MavenCycle de vie / DépendancesMaven dans un contexte professionnelMaven 2 vs Maven 3.0.x ...
Cycle de vie     Un cycle de vie dun projet est représenté par un ensemble de phases            Chaque phase peut réaliser...
Cycle de vie pour le nettoyage du projet      La phase clean est la phase par défaut de ce cycle             Mise en œuvre...
Cycle de vie par défaut   23 phases pour ce cycle          Chaque type de projets (JAR, EAR, WAR...) définit les goals à é...
Dépendances        Identifier et importer des référentiels distants vers le local les      bibliothèques logicielles néces...
3e partiePrésentation de Apache MavenCycle de vie / DépendancesMaven dans un contexte professionnelMaven 2 vs Maven 3.0.x ...
Contexte professionnel Maxime Gréau            Maven dans17 contexte professionnel                                    un  ...
Eclipse IDE : plugin m2eclipse  Maxime Gréau                   Maven dans18 contexte professionnel                        ...
Eclipse IDE : plugin m2eclipse  Maxime Gréau                   Maven dans19 contexte professionnel                        ...
Eclipse IDE : plugin m2eclipse  Maxime Gréau                   Maven dans20 contexte professionnel                        ...
Tests IntégrationDéploiement et tests dans le container cibleMaxime Gréau                                   Maven dans21 c...
Intégration Continue Permet luniformité, lautomatisation et le déploiement des constructions(Continuum, Jenkins, Hudson) M...
Intégration Continue - Jenkins  Maxime Gréau                   Maven dans23 contexte professionnel                        ...
Gestionnaire de référentiels  Logiciel qui permet de centraliser et masquer la complexité liée auxdépôts de bibliothèques ...
Gestionnaire de référentiels - Nexus Maxime Gréau                      Maven dans25 contexte professionnel                ...
4e partiePrésentation de Apache MavenCycle de vie / DépendancesMaven dans un contexte professionnelMaven 2 vs Maven 3.0.x ...
Maven 2 / 3.x / 3.1   Critiques          Migration de maven 1 vers Maven 2 => impossible          Mise à jour de maven 2.0...
5e partiePrésentation de Apache MavenCycle de vie / DépendancesMaven dans un contexte professionnelMaven 2 vs Maven 3.0.x ...
Documentation / Support     Docs officielles (Anglais)            http://maven.apache.org            http://maven.apache.o...
Livres en FrançaisApache Maven       Maîtrisez linfrastructure            dun projet Java EE  406 pages  100+ illustration...
Livres en FrançaisApache Maven                      Versions 2 et 3 Nicolas De Loof Arnaud Héritier Disponible       chez ...
Livres en Anglais Maxime Gréau               32                     Documentation / Support / Livres http://mgreau.com    ...
Déjeuner Technique   Nantes                           Questions                    http://maven.apache.orgMaxime Gréau    ...
Prochain SlideShare
Chargement dans…5
×

Apache Maven 3

5 256 vues

Publié le

Slides de présentation du livre "Apache Maven - Maîtrisez l'infrastructure d'un projet Java EE"

0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
5 256
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
255
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Apache Maven 3

  1. 1. Déjeuner Technique Nantes Apache Maven 3.x http://maven.apache.orgMaxime Gréau Apache Maven 3.xhttp://mgreau.com Décembre 2011
  2. 2. Maxime Gréau Architecte Java EE Service des Retraites de lÉtat Auteur du livre Apache Maven - Maîtrisez linfrastructure dun projet Java EE (Editions ENI) Préface et Relecture de Arnaud Héritier Commiter et PMC du projet Apache Maven Contactez-moi http://mgreau.com Twitter : @mgreau Maxime Gréau 2 Apache Maven 3.x http://mgreau.com Décembre 2011
  3. 3. SommairePrésentation de Apache MavenCycle de vie / DépendancesMaven dans un contexte professionnelMaven 2 vs Maven 3.0.x vs Maven 3.1Documentation / Support / LivresMaxime Gréau 3 Apache Maven 3.xhttp://mgreau.com Décembre 2011
  4. 4. Définition Apache Maven est un logiciel de gestion de projets et unoutil de construction, basé sur : le concept du POM (Project Object Model) le respect de conventions et normes standards Elément central dans la gestion dune infrastructure deprojet informatique : construction du livrable final gestion des bibliothèques logicielles de dépendances, génération de la documentation et rapport du projet déploiement des versions de livraison sur les plate- formes ciblesMaxime Gréau 4 Présentation de Apache Maven http://mgreau.com Apache Maven 3.x - Décembre 2011
  5. 5. HistoriqueCréé par Jason Van Zyl (Sonatype)Apache Maven fête ses 10 ans en 2011Dernières releases : Maven 2.0.11 Maven 2.2.1 Maven 3.0.3 Maxime Gréau 5 Présentation de Apache Maven http://mgreau.com Apache Maven 3.x - Décembre 2011
  6. 6. La communauté (ASF) Apache Software Foundation 4 rôles principaux Sponsorisé par des sociétés Sonatype Talend Apache Maven + de 50 personnes 26 PMC Maxime Gréau 6 Présentation de Apache Maven http://mgreau.com Apache Maven 3.x - Décembre 2011
  7. 7. Le POM (Project Object Model) Descripteur du projet au format XML / 4 élémentsobligatoires : modelVersion : précise la version du modèle objet utilisé groupId : identifie le projet dans un espace de nommage artifactId : correspond à la valeur principale contenue dans le nom du fichier de sortie construit par le projet (fichier XML ou archive) version : donne la version en cours du projet Exemple de fichier pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" > <modelVersion>4.0.0</modelVersion> <groupId>com.mgreau.mvnbook</groupId> <artifactId>mvnbook-persistence</artifactId> <version>1.0.0-SNAPSHOT</version> </project> Maxime Gréau 7 Présentation de Apache Maven http://mgreau.com Apache Maven 3.x - Décembre 2011
  8. 8. Le POM (Project Object Model) 5 catégories 1 Super POM Hérité par tous les POM <project> <modelVersion>4.0.0</modelVersion> <repositories> <repository> <id>central</id> <name>Maven Repository Switchboard</name> <url>http://repo1.maven.org/maven2</url> ... </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <name>Maven Plugin Repository</name> <url>http://repo1.maven.org/maven2</url> ... </pluginRepository> </pluginRepositories> … </project> Maxime Gréau 8 Présentation de Apache Maven http://mgreau.com Apache Maven 3.x - Décembre 2011
  9. 9. Notions importantesRéférentiels (repositories) – Gestion des artefacts Référentiel local (local repository) Référentiels distants (remote repositories)Fichiers settings.xml - Configuration settings.xml local : ${user.home}/.m2/settings.xml settings.xml global : $M2_HOME/conf/settings.xmlStructure de projet standard ${project.basedir}/src/main/java ${project.basedir}/src/main/resources ${project.basedir}/src/test/java ${project.basedir}/src/test/resources p ${project.basedir}/src/main/scripts ${project.basedir}/target ${project.basedir}/target/classes ${project.basedir}/target/test-classes ${project.basedir}/target/site pom.xml Maxime Gréau 9 Présentation de Apache Maven http://mgreau.com Apache Maven 3.x - Décembre 2011
  10. 10. Infrastructure cible autour de Maven Maxime Gréau 10 Présentation de Apache Maven http://mgreau.com Apache Maven 3.x - Décembre 2011
  11. 11. 2e partiePrésentation de Apache MavenCycle de vie / DépendancesMaven dans un contexte professionnelMaven 2 vs Maven 3.0.x vs Maven 3.1Documentation / Support / LivresMaxime Gréau 11 Cycle de vie / Plugins / Dépendanceshttp://mgreau.com Apache Maven 3.x - Décembre 2011
  12. 12. Cycle de vie Un cycle de vie dun projet est représenté par un ensemble de phases Chaque phase peut réaliser plusieurs actions = goals 3 cycles de vie définis par Maven Cycle de vie pour le nettoyage du projet (clean life cycle) Cycle de vie par défaut (default life cycle) Cycle de vie pour le site du projet (site life cycle) Maxime Gréau 12 Cycle de vie / Plugins / Dépendances http://mgreau.com Apache Maven 3.x - Décembre 2011
  13. 13. Cycle de vie pour le nettoyage du projet La phase clean est la phase par défaut de ce cycle Mise en œuvre par le plugin maven-clean-plugin Plusieurs possibilités pour appeler le goal clean mvn clean mvn clean:clean mvn org.apache.maven.plugins:maven-clean-plugin:clean mvn org.apache.maven.plugins:maven-clean-plugin:2.4.1:clean Maxime Gréau 13 Cycle de vie / Plugins / Dépendances http://mgreau.com Apache Maven 3.x - Décembre 2011
  14. 14. Cycle de vie par défaut 23 phases pour ce cycle Chaque type de projets (JAR, EAR, WAR...) définit les goals à éxecuter et les associe à des phases Cycle de vie par défaut pour la construction dun JARMaxime Gréau 14 Cycle de vie / Plugins / Dépendances http://mgreau.com Apache Maven 3.x - Décembre 2011
  15. 15. Dépendances Identifier et importer des référentiels distants vers le local les bibliothèques logicielles nécessaires au fonctionnement du projet<project>... <artifactId>mvnbook-persistence</artifactId>... <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator-annotation-processor</artifactId> <version>4.1.0.Final</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.5.6</version> <scope>runtime</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> <scope>test</scope> </dependency> </dependencies>…</project> Maxime Gréau 15 Cycle de vie / Plugins / Dépendances http://mgreau.com Apache Maven 3.x - Décembre 2011
  16. 16. 3e partiePrésentation de Apache MavenCycle de vie / DépendancesMaven dans un contexte professionnelMaven 2 vs Maven 3.0.x vs Maven 3.1Documentation / Support / LivresMaxime Gréau Maven dans16 contexte professionnel unhttp://mgreau.com Apache Maven 3.x - Décembre 2011
  17. 17. Contexte professionnel Maxime Gréau Maven dans17 contexte professionnel un http://mgreau.com Apache Maven 3.x - Décembre 2011
  18. 18. Eclipse IDE : plugin m2eclipse Maxime Gréau Maven dans18 contexte professionnel un http://mgreau.com Apache Maven 3.x - Décembre 2011
  19. 19. Eclipse IDE : plugin m2eclipse Maxime Gréau Maven dans19 contexte professionnel un http://mgreau.com Apache Maven 3.x - Décembre 2011
  20. 20. Eclipse IDE : plugin m2eclipse Maxime Gréau Maven dans20 contexte professionnel un http://mgreau.com Apache Maven 3.x - Décembre 2011
  21. 21. Tests IntégrationDéploiement et tests dans le container cibleMaxime Gréau Maven dans21 contexte professionnel unhttp://mgreau.com Apache Maven 3.x - Décembre 2011
  22. 22. Intégration Continue Permet luniformité, lautomatisation et le déploiement des constructions(Continuum, Jenkins, Hudson) Maxime Gréau Maven dans22 contexte professionnel un http://mgreau.com Apache Maven 3.x - Décembre 2011
  23. 23. Intégration Continue - Jenkins Maxime Gréau Maven dans23 contexte professionnel un http://mgreau.com Apache Maven 3.x - Décembre 2011
  24. 24. Gestionnaire de référentiels Logiciel qui permet de centraliser et masquer la complexité liée auxdépôts de bibliothèques logicielles (Nexus, Artifactory, Archiva) SANS GESTIONNAIRE AVEC GESTIONNAIRE Maxime Gréau Maven dans24 contexte professionnel un http://mgreau.com Apache Maven 3.x - Décembre 2011
  25. 25. Gestionnaire de référentiels - Nexus Maxime Gréau Maven dans25 contexte professionnel un http://mgreau.com Apache Maven 3.x - Décembre 2011
  26. 26. 4e partiePrésentation de Apache MavenCycle de vie / DépendancesMaven dans un contexte professionnelMaven 2 vs Maven 3.0.x vs Maven 3.1Documentation / Support / LivresMaxime Gréau 26 Documentation / Support / Livreshttp://mgreau.com Apache Maven 3.x - Décembre 2011
  27. 27. Maven 2 / 3.x / 3.1 Critiques Migration de maven 1 vers Maven 2 => impossible Mise à jour de maven 2.0.x vers 2.x => problèmes Maven 3 : compatibilité avec Maven 2.2.x 700 tests dintégration 7 versions alpha et 3 bétas Maven 3 : Construction en parallèle Maven 3 : Amélioration des performances Maven 3 : réécrit en Java 5 Maven 3 : nouvelle API pour gestion des artefacts et référentiels Maven 3 : meilleures gestion des erreurs Maven 3 : plus de contrôles des POM Maven 3 : plugins uniquement gérés par <pluginRepositories> Maven 3.1 : MixinsMaxime Gréau 27 Apache Maven 3.xhttp://mgreau.com Décembre 2011
  28. 28. 5e partiePrésentation de Apache MavenCycle de vie / DépendancesMaven dans un contexte professionnelMaven 2 vs Maven 3.0.x vs Maven 3.1Documentation / Support / LivresMaxime Gréau 28 Documentation / Support / Livreshttp://mgreau.com Apache Maven 3.x - Décembre 2011
  29. 29. Documentation / Support Docs officielles (Anglais) http://maven.apache.org http://maven.apache.org/guides/index.html http://maven.apache.org/plugins http://mojo.codehaus.org Listes de diffusions (Anglais) users@maven.apache.org dev@maven.apache.org announce@maven.apache.org Forums / FAQ / Guide (Français) FAQ : http://java.developpez.com/faq/maven/ Forum : http://www.developpez.net/forums/f319/java/edi-outils-java/build/maven/ Guide : http://maven-guide-fr.erwan-alliaume.com/ Ressources de Sonatype (Anglais) Livres gratuits : http://www.sonatype.com/Support/Books Blog : http://www.sonatype.com/people/ Maxime Gréau 29 Documentation / Support / Livres http://mgreau.com Apache Maven 3.x - Décembre 2011
  30. 30. Livres en FrançaisApache Maven Maîtrisez linfrastructure dun projet Java EE 406 pages 100+ illustrations 1 application fil rouge Maven 2 et 3 1 site Web dédié http://mvnbook.mgreau.com/ Disponible chez léditeur http://www.editions-eni.fr Amazon.fr / fnac.com ... Maxime Gréau 30 Documentation / Support / Livres http://mgreau.com Apache Maven 3.x - Décembre 2011
  31. 31. Livres en FrançaisApache Maven Versions 2 et 3 Nicolas De Loof Arnaud Héritier Disponible chez léditeur http://www.pearson.fr/ Amazon.fr / fnac.com ... Maxime Gréau 31 Documentation / Support / Livres http://mgreau.com Apache Maven 3.x - Décembre 2011
  32. 32. Livres en Anglais Maxime Gréau 32 Documentation / Support / Livres http://mgreau.com Apache Maven 3.x - Décembre 2011
  33. 33. Déjeuner Technique Nantes Questions http://maven.apache.orgMaxime Gréau Apache Maven 3.xhttp://mgreau.com Décembre 2011

×