Suche senden
Hochladen
Maven2 - Philippe Kernevez - March 2009
•
0 gefällt mir
•
493 views
JUG Lausanne
Folgen
Maven2 - Philippe Kernevez - March 2009
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 43
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009
JUG Lausanne
Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012
Jean-Marc Fontaine
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven
Arnaud Héritier
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Jean Gabès
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
Arnaud Héritier
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
Arnaud Héritier
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
Christian Charreyre
Meetup Systemd vs sysvinit
Meetup Systemd vs sysvinit
Christian Charreyre
Empfohlen
Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009
JUG Lausanne
Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012
Jean-Marc Fontaine
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven
Arnaud Héritier
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Jean Gabès
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
Arnaud Héritier
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
Arnaud Héritier
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
Christian Charreyre
Meetup Systemd vs sysvinit
Meetup Systemd vs sysvinit
Christian Charreyre
Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015
Christian Charreyre
Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018
Jean-Michel Doudoux
Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX
Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX
Jean-Michel Doudoux
Lyon JUG 2018 - Java le changement c'est maintenant
Lyon JUG 2018 - Java le changement c'est maintenant
Jean-Michel Doudoux
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
Ippon
Tutorial final cut pro 7 pour Memoways
Tutorial final cut pro 7 pour Memoways
Ulrich Fischer
Maintenir du code historique - RMLL 2011
Maintenir du code historique - RMLL 2011
Jean-Marc Fontaine
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
Rossi Oddet
Sonar-Hodson-Maven
Sonar-Hodson-Maven
Slimen Belhaj Ali
Nantes jug 2018 - Java le changement c'est maintenant
Nantes jug 2018 - Java le changement c'est maintenant
Jean-Michel Doudoux
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017
Jean-Michel Doudoux
Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014
Ippon
Dossier de production 1
Dossier de production 1
Johanna Lry
Propositions municipales 2014 pcf fougères oct 2013
Propositions municipales 2014 pcf fougères oct 2013
OlivierLP29
Vr100 133106 contabilidad-1
Vr100 133106 contabilidad-1
karitosanta
Informatica
Informatica
Victoria Grimanela Villafuerte Cuisano
Vr100 133106 contabilidad-1
Vr100 133106 contabilidad-1
karitosanta
Regalitos
Regalitos
karitosanta
Vr100 -133106_contabilidad-1
Vr100 -133106_contabilidad-1
nuryyy
Cambios en la accion docente ptt
Cambios en la accion docente ptt
Giovani Pérez
Formations informatiques Brest
Formations informatiques Brest
CCI Brest Formations
Publicate baja california
Publicate baja california
garden92
Weitere ähnliche Inhalte
Was ist angesagt?
Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015
Christian Charreyre
Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018
Jean-Michel Doudoux
Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX
Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX
Jean-Michel Doudoux
Lyon JUG 2018 - Java le changement c'est maintenant
Lyon JUG 2018 - Java le changement c'est maintenant
Jean-Michel Doudoux
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
Ippon
Tutorial final cut pro 7 pour Memoways
Tutorial final cut pro 7 pour Memoways
Ulrich Fischer
Maintenir du code historique - RMLL 2011
Maintenir du code historique - RMLL 2011
Jean-Marc Fontaine
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
Rossi Oddet
Sonar-Hodson-Maven
Sonar-Hodson-Maven
Slimen Belhaj Ali
Nantes jug 2018 - Java le changement c'est maintenant
Nantes jug 2018 - Java le changement c'est maintenant
Jean-Michel Doudoux
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017
Jean-Michel Doudoux
Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014
Ippon
Was ist angesagt?
(12)
Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015
Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018
Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX
Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX
Lyon JUG 2018 - Java le changement c'est maintenant
Lyon JUG 2018 - Java le changement c'est maintenant
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
Tutorial final cut pro 7 pour Memoways
Tutorial final cut pro 7 pour Memoways
Maintenir du code historique - RMLL 2011
Maintenir du code historique - RMLL 2011
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
Sonar-Hodson-Maven
Sonar-Hodson-Maven
Nantes jug 2018 - Java le changement c'est maintenant
Nantes jug 2018 - Java le changement c'est maintenant
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017
Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014
Andere mochten auch
Dossier de production 1
Dossier de production 1
Johanna Lry
Propositions municipales 2014 pcf fougères oct 2013
Propositions municipales 2014 pcf fougères oct 2013
OlivierLP29
Vr100 133106 contabilidad-1
Vr100 133106 contabilidad-1
karitosanta
Informatica
Informatica
Victoria Grimanela Villafuerte Cuisano
Vr100 133106 contabilidad-1
Vr100 133106 contabilidad-1
karitosanta
Regalitos
Regalitos
karitosanta
Vr100 -133106_contabilidad-1
Vr100 -133106_contabilidad-1
nuryyy
Cambios en la accion docente ptt
Cambios en la accion docente ptt
Giovani Pérez
Formations informatiques Brest
Formations informatiques Brest
CCI Brest Formations
Publicate baja california
Publicate baja california
garden92
newsletter de la Embajada de Suiza en Argentina
newsletter de la Embajada de Suiza en Argentina
susanabartz
1302 newsletter
1302 newsletter
susanabartz
Nombres dothraki
Nombres dothraki
kittyk4att
Teorías de aprendizaje tic
Teorías de aprendizaje tic
nilzuhu
Dossier de production version2 ameliorée
Dossier de production version2 ameliorée
steph95000
Zoom sur les bibliothèques et médiathèqes Vosgiennes
Zoom sur les bibliothèques et médiathèqes Vosgiennes
maurand
Formation radon sept 2013
Formation radon sept 2013
AIBQ
Shin banquedefrance 11-2014
Shin banquedefrance 11-2014
Macropru Reader
Un/Une
Un/Une
ashleetaylor28
Environment
Environment
mimio_azerbaijan
Andere mochten auch
(20)
Dossier de production 1
Dossier de production 1
Propositions municipales 2014 pcf fougères oct 2013
Propositions municipales 2014 pcf fougères oct 2013
Vr100 133106 contabilidad-1
Vr100 133106 contabilidad-1
Informatica
Informatica
Vr100 133106 contabilidad-1
Vr100 133106 contabilidad-1
Regalitos
Regalitos
Vr100 -133106_contabilidad-1
Vr100 -133106_contabilidad-1
Cambios en la accion docente ptt
Cambios en la accion docente ptt
Formations informatiques Brest
Formations informatiques Brest
Publicate baja california
Publicate baja california
newsletter de la Embajada de Suiza en Argentina
newsletter de la Embajada de Suiza en Argentina
1302 newsletter
1302 newsletter
Nombres dothraki
Nombres dothraki
Teorías de aprendizaje tic
Teorías de aprendizaje tic
Dossier de production version2 ameliorée
Dossier de production version2 ameliorée
Zoom sur les bibliothèques et médiathèqes Vosgiennes
Zoom sur les bibliothèques et médiathèqes Vosgiennes
Formation radon sept 2013
Formation radon sept 2013
Shin banquedefrance 11-2014
Shin banquedefrance 11-2014
Un/Une
Un/Une
Environment
Environment
Ähnlich wie Maven2 - Philippe Kernevez - March 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
JUG Lausanne
JUGL 2009 - Introduction Groovy/Grails
JUGL 2009 - Introduction Groovy/Grails
cyrilpicat
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
Arnaud Héritier
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
JUG Lausanne
20081008 - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
Arnaud Héritier
Concevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto Project
Christian Charreyre
Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...
Christian Charreyre
Présentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expérience
Khanh Maudoux
Présentation Maven
Présentation Maven
SOAT
Formation Play! framework
Formation Play! framework
Benoît Simard
Outils de construction pour la recherche
Outils de construction pour la recherche
Johan Moreau
Créer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou Angström
Christian Charreyre
Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?
pprem
Strategie de Virtualisation Open Source
Strategie de Virtualisation Open Source
Open Source School
Conference Informatique Embarquée Synergie-NTIC
Conference Informatique Embarquée Synergie-NTIC
Christian Charreyre
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
Christophe Furmaniak
Introduction à web assembly
Introduction à web assembly
Jérémy Buget
La Duck Conf - DevOps et Dataviz, un amour impossible ?
La Duck Conf - DevOps et Dataviz, un amour impossible ?
OCTO Technology
GWT no-dto
GWT no-dto
François Wauquier
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
Emmanuel Hugonnet
Ähnlich wie Maven2 - Philippe Kernevez - March 2009
(20)
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
JUGL 2009 - Introduction Groovy/Grails
JUGL 2009 - Introduction Groovy/Grails
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
20081008 - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
Concevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto Project
Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...
Présentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expérience
Présentation Maven
Présentation Maven
Formation Play! framework
Formation Play! framework
Outils de construction pour la recherche
Outils de construction pour la recherche
Créer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou Angström
Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?
Strategie de Virtualisation Open Source
Strategie de Virtualisation Open Source
Conference Informatique Embarquée Synergie-NTIC
Conference Informatique Embarquée Synergie-NTIC
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
Introduction à web assembly
Introduction à web assembly
La Duck Conf - DevOps et Dataviz, un amour impossible ?
La Duck Conf - DevOps et Dataviz, un amour impossible ?
GWT no-dto
GWT no-dto
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
Mehr von JUG Lausanne
Introduction aux algorithmes génétiques
Introduction aux algorithmes génétiques
JUG Lausanne
Développer un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rien
JUG Lausanne
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
JUG Lausanne
Exemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et Spark
JUG Lausanne
Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012
JUG Lausanne
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
JUG Lausanne
CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011
JUG Lausanne
Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011
JUG Lausanne
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
JUG Lausanne
OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010
JUG Lausanne
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010
JUG Lausanne
Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010
JUG Lausanne
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
JUG Lausanne
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
JUG Lausanne
Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010
JUG Lausanne
Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009
JUG Lausanne
XML & Java - Raphaël Tagliani - March 2008
XML & Java - Raphaël Tagliani - March 2008
JUG Lausanne
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
JUG Lausanne
Scripting with Java FX - Cédric Tabin - December 2007
Scripting with Java FX - Cédric Tabin - December 2007
JUG Lausanne
GlassFish Update and Directions - Karim Mazouni - November 2007
GlassFish Update and Directions - Karim Mazouni - November 2007
JUG Lausanne
Mehr von JUG Lausanne
(20)
Introduction aux algorithmes génétiques
Introduction aux algorithmes génétiques
Développer un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rien
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
Exemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et Spark
Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011
Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010
Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010
Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009
XML & Java - Raphaël Tagliani - March 2008
XML & Java - Raphaël Tagliani - March 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Scripting with Java FX - Cédric Tabin - December 2007
Scripting with Java FX - Cédric Tabin - December 2007
GlassFish Update and Directions - Karim Mazouni - November 2007
GlassFish Update and Directions - Karim Mazouni - November 2007
Maven2 - Philippe Kernevez - March 2009
1.
Mise en œuvre
en entreprise JUGL Jeudi 5 mars 2009
2.
Remerciements Arnaud Héritier OCTO Technology Committer
depuis 2004 Membre du PMC (Project Management Committee) depuis 2005 Olivier Jacob OCTO Technology Utilisateur depuis 2003 Industrialisation des builds chez différents clients Quelques patchs fournis pour bug fix ou évolutions sur les plugins Présentation Maven au Jug de Paris, Nantes et Tours Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 2
3.
Philippe kernévez OCTO Technology Directeur
Technique pkernevez@octo.com http://www.octo.com Maven Utilisateur depuis 2002 Industrialisation des builds chez différents clients Committer codehaus Auteur du plugin FitNesse http://mojo.codehaus.org/fitnesse-maven-plugin/ Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 3
4.
Bibliographie http://tinyurl.com/6r5v8p http://tinyurl.com/5uv6lg Copyright © 2009
– OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 4
5.
Licence Creative Commons Contrat Paternité Pas
d'Utilisation Commerciale Partage des Conditions Initiales à l'Identique 2.0 France http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 5
6.
Aujourd’hui Pourquoi Maven ? Maven,
les concepts Maven, ses apports en entreprise Comment faire échouer son projet avec Maven ? Démonstration Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 6
7.
Apache Maven POURQUOI MAVEN
? Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 7
8.
Construction d’un war
en 2002 (1/2) Construire un war Utilisation d’Eclipse limitée • En ces temps reculés où WTP n’existait pas (uniquement dans la version payante d’IBM), eclipse ne permettait pas d’exporter des Wars Gestion manuelle • • • • • • • Modifier les fichiers de paramétrage Exporter les différents jar Copier les dépendances (et nos jars), dans un répertoire lib Faire un zip que l’on renomme en war Tagguer l’ensemble des sources dans le répertoire de sources (CVS) Envoi du fichier par FTP sur le serveur d’intégration Se connecter à la console d’administration du serveur et déployer l’application Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 8
9.
Construction d’un war
en 2002 (2/2) Combien de temps ça prend ? Quand tout va bien : • 15 minutes Quand il y a des problèmes : • ½ journée Un seul problème, Y’a toujours des problèmes Erreur dans la configuration Oubli d’une dépendance Oubli d’un fichier Correction de dernière minute qui introduit une régression… Autres Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 9
10.
Une première réponse
: ANT Ecriture d’un script Permet d’automatiser le processus Durée du processus réduite de moitié Le processus ne monopolise personne • On le lance et on passe à autre chose Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 10
11.
Les limites de
ANT Ecrire le script, c’est long Modifier un script, c’est très long Au final, le gain de temps n’est pas évident Mais c’est quand même plus amusant Il est possible de réutiliser le script ! Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 11
12.
La réutilisation de
scripts ANT Les scripts ne sont pas directement réutilisables Structure de projets différents Besoins différents Encore du temps perdu Modification du script Réécriture pour le rendre plus générique Un nouveau métier s’est créé : scripteur ANT Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 12
13.
Quelques exemples http://anonsvn.jboss.org/repos/seam/branches/community/Seam_2_0 http://junit.cvs.sourceforge.net/viewvc/junit/junit/build.xml?view=markup http://findbugs.googlecode.com/svn/trunk/findbugs/build.xml Copyright ©
2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 13
14.
Apache Maven LES CONCEPTS Copyright
© 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 14
15.
L’arrivée de Maven Convention
Over Configuration On ne scripte plus, on décrit son projet (POM) Architecture extensible Des plugins réutilisables et configurables évitent la multiplication des scripts de build Gestion des dépendances du projet (versions, partage, ..) Référentiels d’artefacts Dépendances déclaratives Dépendances transitives Amélioration de la qualité des livrables Exécution automatique des tests unitaires Contrôles (conventions de nommage, codage, …) Rapports et documentations Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 15
16.
Les conventions 1 projet
Maven = 1 artéfact (pom, jar, war, ear, …) 1 organisation des répertoires prédéfinie 1 descripteur standardisé (POM) Des cycles de construction standardisés Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 16
17.
Le POM Un fichier
XML (pom.xml) Décrivant Identification du projet Version du projet Description du projet Liste des développeurs Dépendances … <?xml version="1.0" encoding="UTF8"?> <project> <modelVersion>4.0.0</modelVersion> <groupId>com.octo</groupId> <artifactId>webappsample</artifactId> <version>1.1-SNAPSHOT</version> <packaging>war</packaging> <name>Simple webapp</name> <inceptionYear>2007</inceptionYear> <dependencies> <dependency> <groupId>org.springframework</grou pId> <artifactId>springstruts</artifactId> <version>2.0.2</version> </dependency> ... </dependencies> Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique </project> 17
18.
Cycle de vie
et plugins Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 18
19.
Les référentiels d’artéfacts Par
défaut : Un central • http://repo1.maven.org/maven2 • Propose plusieurs dizaines de Go de librairies OSS Un local • ${user.home}/.m2/repository • Centralise tous les artéfacts utilisés et créés par vos projets Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 19
20.
Les dépendances Sans Maven Avec
Maven Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 20
21.
Les dépendances Déclaratives groupId +
artifactId + version (+ classifier) Type (packaging) : jar, war, pom, ear, … Transitives Lib A Lib B Lib B Lib C Alors Lib A Lib C Scopes d’utilisation Runtime : taglibs Provided : Servlet API, Driver SGBD, … Compile : par défaut Test : Junit, TestNG, DbUnit, … System : non recommandé (emplacement physique sur disque) Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 21
22.
Les versions (1/2) Le
snapshot est une version particulière d’un artéfact / projet Indique qu’un artéfact est en cours de développement Le numéro de version est suffixé par -SNAPSHOT L’artéfact est écrasé à chaque nouvelle construction en local L’artéfact est déployé avec un timestamp sur le repository central du projet Les versions fixes (releases) Sans –SNAPSHOT dans leur numéro Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 22
23.
Les versions (2/2) Dépendances
snapshot Politique de vérification des mises à jour • • • • always daily (par défaut) interval:X (valeur personnalisée en minutes) never Ne peuvent pas être utilisées lors d’une release • Maven recommande une version figée Intervalle de versions De … à … Maven recherche automatiquement les nouvelles versions A utiliser avec précaution • Risque de non reproductibilité du build • Risque de disfonctionnement des consommateurs Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 23
24.
Le reactor pom.xml de
projet 1 Construit un projet et tous ses modules en résolvant l’ordre de <modules> <module>moduleA</module> leurs dépendances Projet 1 • Module A (dépend de B) • Module B • Module C (dépend de A) <module>moduleC</module> <module>moduleB</module> </modules> Construira B puis A puis C Les modules sont déclarés explicitement Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 24
25.
L’héritage Factorisation de paramètres entre
projets/modules L’organisation des sous modules et de l’héritage doit être technique (ejbs, wars, jars) et non pas fonctionnelle (serviceA, serviceB, …) Projet1 pom.xml de module Jar1 <parent> <groupId>X.Y.Z</groupId> <artifactId>jars</artifactId> <version>1.0-SNAPSHOT<version> </parent> Jars • Jar1 • Jar2 Wars • War1 • … Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 25
26.
L’héritage naturel Lorsque le
parent sert aussi de reactor A condition que nom du module = son artifactId Evite la re-définition de certains éléments du pom • Url du site • Déploiement du site • Informations SCMs Est recommandé pour éviter quelques bugs dans les plugins Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 26
27.
Site / Documentation
(1/2) Génération d’un site documentaire à partir de documents dans différents formats : Xdocs (xml) Apt (wiki) Docbook …. Génération de rapports sur le projet Descriptif Informations sur les dépendances Documentation automatique des plugins maven Javadoc Xref Tests unitaires, couverture, … Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 27
28.
Site / Documentation
(2/2) Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 28
29.
Reporting / Contrôle
qualité (1/3) Types de contrôles / reporting Résultat de l’exécution des tests : surefire Couverture de tests : clover, cobertura Qualité du code : findbugs Conformité aux standards : checkstyle Patterns / Antipatterns : pmd Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 29
30.
Reporting / Contrôle
qualité (2/3) Contrôle - Pro-actif Le build échoue si mon code ne respecte pas certaines règles Les problèmes ne sont pas dans le gestionnaire de sources puisque je ne commite jamais un code qui ne build pas ☺ Reporting - Réactif Je corrige les problèmes une fois étudié le rapport Les problèmes sont dans le gestionnaire de sources Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 30
31.
Reporting / Contrôle
qualité (3/3) Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 31
32.
Et encore .
. . Profiles (Re-)définition de certaines parties du POM en fonction de profils de build Properties Définition de propriétés réutilisables dans le POM Assemblies Définition de packaging personnalisés Archetypes Définition de squelettes de projets personnalisés Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 32
33.
Apache Maven SES APPORTS
EN ENTREPRISE Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 33
34.
Standardisation Pour les équipes Capitalisation
des connaissances Permet de facilement passer d’un projet ou module à un autre Pour les cellules transverses Facilite le support Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 34
35.
Une véritable gestion
des binaires Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 35
36.
L’intégration continue facilitée Copyright
© 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 36
37.
Réutilisation De configuration Héritage de
POMs De recommandations sur les dépendances Import de dependencyManagement De traitements Plugins De librairies Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 37
38.
Le processus de
release automatisé Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 38
39.
Apache Maven COMMENT FAIRE
ÉCHOUER SON PROJET AVEC MAVEN ? Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 39
40.
10 bonnes pratiques
pour faire échouer son projet 1. 2. 3. 4. 5. 6. 7. 8. 9. Ne pas utiliser les conventions Mettre tout ce qui est possible de mettre dans le pom Se rendre dépendant de l’environnement Multiplier les niveaux d’héritage Utiliser systématiquement "-Dmaven.test.skip=true » Faire les releases à la main S’échanger les jars par mail Utilisation massive du plugin antrun Confondre dependencies et dependencyManagement Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 40
41.
10. Passer son
temps dans la console Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 41
42.
Apache Maven DÉMONSTRATION > mvn
archetype:generate > mvn clean install > mvn site Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 42
43.
Copyright © 2009
– OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 43
Jetzt herunterladen