SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Outil de construction
Convention vs Configuration
Introduction
• maven ... c’est quoi ?
• Pourquoi maven ?
• maven... pour quoi faire ?
• maven... comment faire ?
C’est quoi maven ?
C’est quoi maven ?
• Outil de build
• Né de l’expérience des outils comme
Makefile, Ant, etc.
• En reprend les fonctionnalités
principales (gestion des
dépendances, script de
construction)
• Ajout de fonctions : test automatique,
génération de rapport
• Plugable
Pourquoi maven ?
Pourquoi maven ?
• Éviter les constructions manuelles 
• Standardiser le modèle de projet
• Standardiser la chaîne de construction 
• Automatiser le maximum
• Gérer les dépendances
• Faire plus que de la construction :
• Exécution des tests unitaires
• Génération de documentation
• Génération de rapports de tests, de couverture
code, d'analyses statique (checkstyle, PMD,
CPD, ...)
Pourquoi maven ?
• Gestion des dépendances entre projets
(dependency graph de m2eclipse)
Comment faire ?
Comment faire ?
• Convention != normes, obligations,
contraintes...
• Si tu veux configurer tu es libre mais
débrouille toi...
• KISS : Keep It Simple, Stupid 
• Partir de rien, quand c'est possible
• Industrialiser au maximum
• Bien définir les dépendances, être
minimaliste
Comment faire ?
• pom.xml
• POM : Project Object Model
• Situé à la racine du projet
• Phase principales dans le cycle de vie de
Maven 
• compile
• test
• package
• install
• deploy
Comment faire ?
• pom.xml
• POM : Project Object Model
• Situé à la racine du projet
• Phase principales dans le cycle de vie de
Maven 
• compile
• test
• package
• install
• deploy
Comment faire ?
• Convention des répertoires
• /src : les sources du projet
• /src/main : code source et fichiers source
principaux
• /src/main/java : code source
• /src/main/resources : fichiers de ressource
• /src/test : fichiers de test
• /src/test/java : code source de test
• /src/test/resources : fichiers de ressources de test
• /src/site : informations sur le projet pour les rapports
• /src/main/webapp : webapp du projet
• /target : fichiers résultat, les binaires (du code et des
tests), les packages générés et les résultats des tests
Comment faire ?
• Configuration local
• $home
• .m2
• settings.xml
• repository
• libs
Comment faire ?
• Les commandes maven de base
• mvn install : compile le projet,
exécute les tests, met a disposition le
repository local
• mvn clean install : supprime le fichier
target et re-install
• mvn test : exécute les tests unitaire
du projet
• mvn eclipse:eclipse :génère
les .classpath et .project
• mvn site : génère le site du projet,
information général, rapport de test,
de qualité, ...(conf. pom.xml requise)
Comment faire ?
• Comment faire planter son projet maven ?
• En n’utilisant pas les conventions de Maven 2 (target,
héritage, répertoires src…)
• En ayant trop de sous modules avec des versions différentes
(naissance de nouveaux projets involontairement)
• En ayant trop de modules dans le même projet : pénalise la
performance
• En confondant dependencies et dependencyManagement
• En confondant plugins et pluginManagement
• En utilisant massivement antrun : empêche la réutilisation
• En utilisant à outrance les profils : rend dépendant de
l’environnement
• En utilisant trop le reporting de qualité sur des projets déjà
existant
• En mettant tout et n’importe quoi dans le POM
• En faisant des releases à la main
Comment faire ?
• Comment réussir son projet maven ?
• Utiliser l’héritage « naturel »
• Bien définir les dépendances, être
minimaliste !
• Fixer les dépendances dans le
dependencyManagement
• On peut utiliser aussi le plugin
reactor pour ne compiler que ce qui
as été modifié
L’intégration continue
• But : prévenir les bogues, améliore le cycle de
développement en réduisant les corrections en phase
de robustesse
• Intégration, test, contrôle de qualité
• Lancement de la construction à chaque commit possible
ou paramétré avec un délai
• Les logiciels :
• Hudson : coder à la base pour le projet Glassfish,
très en vogue et très intuitif, facile à mettre en
œuvre. Pour le tester en local : java –jar hudson.war
(déployer sur http://localhost:8080/)
• Bamboo : payant
• Teamcity de Jetbrain, « build incassable »
• Continuum : Apache, vieux produit pas très
conviviale mais bien intégrer avec maven
• CruiseControl : vieux produit !
Joel test...
Utilisez-vous un gestionnaire de source ?!
Vos binaires sont-il assemblé en une fois ?!
Vos binaires sont-il produits quotidiennement ?!
Avez-vous un gestionnaire d’anomalie ?!
Le code est-il corrigé avant d’être étendu ?!
Avez-vous un planning à jour ?!
Avez-vous des spécifications ?!
Vos développeurs sont-il dans un lieu calme ?!
Avez-vous les meilleurs outils pour votre budget ?!
Avez-vous des testeur ?!
Les recrues écrivent-elles du codes ?!
Faites-vous des tests utilisateurs complet?

Mais conteúdo relacionado

Mais procurados

Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
Selenium WebDriver avec Java
Selenium WebDriver avec Java Selenium WebDriver avec Java
Selenium WebDriver avec Java Ahmed HARRAK
 
Introduction à l’intégration continue avec Jenkins
Introduction à l’intégration continue avec JenkinsIntroduction à l’intégration continue avec Jenkins
Introduction à l’intégration continue avec JenkinsEric Hogue
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 
Nodejs functions & modules
Nodejs functions & modulesNodejs functions & modules
Nodejs functions & modulesmonikadeshmane
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 YoungSu Son
 
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Dronix
 

Mais procurados (20)

Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
VueJS: The Simple Revolution
VueJS: The Simple RevolutionVueJS: The Simple Revolution
VueJS: The Simple Revolution
 
Java - Lombok
Java - LombokJava - Lombok
Java - Lombok
 
Selenium WebDriver avec Java
Selenium WebDriver avec Java Selenium WebDriver avec Java
Selenium WebDriver avec Java
 
Server side rendering review
Server side rendering reviewServer side rendering review
Server side rendering review
 
Introduction à l’intégration continue avec Jenkins
Introduction à l’intégration continue avec JenkinsIntroduction à l’intégration continue avec Jenkins
Introduction à l’intégration continue avec Jenkins
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Nodejs functions & modules
Nodejs functions & modulesNodejs functions & modules
Nodejs functions & modules
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
HazelCast
HazelCastHazelCast
HazelCast
 
An introduction to Vue.js
An introduction to Vue.jsAn introduction to Vue.js
An introduction to Vue.js
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Nouveautés de java 8
Nouveautés de java 8Nouveautés de java 8
Nouveautés de java 8
 
Apache maven 2 overview
Apache maven 2 overviewApache maven 2 overview
Apache maven 2 overview
 
Jenkins
JenkinsJenkins
Jenkins
 
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Test de charge avec Apache JMeter
Test de charge avec Apache JMeterTest de charge avec Apache JMeter
Test de charge avec Apache JMeter
 

Destaque

Curso de nivelación-Grupo-2
Curso de nivelación-Grupo-2Curso de nivelación-Grupo-2
Curso de nivelación-Grupo-2Carlos Vázquez
 
Le cloud en toute confiance
Le cloud en toute confianceLe cloud en toute confiance
Le cloud en toute confianceIkoula
 
Actual presentacion prenovicios
Actual presentacion prenoviciosActual presentacion prenovicios
Actual presentacion prenoviciosChinca FMA
 
2010 Ontario Municipal Election Resource for Student Vote - French
2010 Ontario Municipal Election Resource for Student Vote - French2010 Ontario Municipal Election Resource for Student Vote - French
2010 Ontario Municipal Election Resource for Student Vote - Frenchjeremysandor
 
Formation interprétes, ccps
Formation interprétes, ccps Formation interprétes, ccps
Formation interprétes, ccps MIERICKE
 
Prepara Una Navidad Diferente
Prepara Una Navidad DiferentePrepara Una Navidad Diferente
Prepara Una Navidad DiferenteIRMA CHAVEZ
 
Dossier de presse février 2014 Théâtre La Coupole Saint-Louis
Dossier de presse février 2014 Théâtre La Coupole Saint-LouisDossier de presse février 2014 Théâtre La Coupole Saint-Louis
Dossier de presse février 2014 Théâtre La Coupole Saint-LouisBâle Région Mag
 
Folles statues cb
Folles statues cbFolles statues cb
Folles statues cbthereddings
 
Atelier M5 - 10 commandements - Responsable commercial - Salon e-tourisme Voy...
Atelier M5 - 10 commandements - Responsable commercial - Salon e-tourisme Voy...Atelier M5 - 10 commandements - Responsable commercial - Salon e-tourisme Voy...
Atelier M5 - 10 commandements - Responsable commercial - Salon e-tourisme Voy...Salon e-tourisme #VeM
 
Proposta Modificació1
Proposta Modificació1Proposta Modificació1
Proposta Modificació1ucave
 
Slides Conferencedepresse Pw Cpaying Taxes2010
Slides Conferencedepresse Pw Cpaying Taxes2010Slides Conferencedepresse Pw Cpaying Taxes2010
Slides Conferencedepresse Pw Cpaying Taxes2010PwCPresseFrance
 
Les verbes au présent de l'indicatif par silvia
Les verbes au présent de l'indicatif par silviaLes verbes au présent de l'indicatif par silvia
Les verbes au présent de l'indicatif par silviaNanettelp
 

Destaque (20)

Curso de nivelación-Grupo-2
Curso de nivelación-Grupo-2Curso de nivelación-Grupo-2
Curso de nivelación-Grupo-2
 
Le cloud en toute confiance
Le cloud en toute confianceLe cloud en toute confiance
Le cloud en toute confiance
 
Actual presentacion prenovicios
Actual presentacion prenoviciosActual presentacion prenovicios
Actual presentacion prenovicios
 
Ds802
Ds802Ds802
Ds802
 
2010 Ontario Municipal Election Resource for Student Vote - French
2010 Ontario Municipal Election Resource for Student Vote - French2010 Ontario Municipal Election Resource for Student Vote - French
2010 Ontario Municipal Election Resource for Student Vote - French
 
Formation interprétes, ccps
Formation interprétes, ccps Formation interprétes, ccps
Formation interprétes, ccps
 
Boqueria 09
Boqueria 09Boqueria 09
Boqueria 09
 
Prepara Una Navidad Diferente
Prepara Una Navidad DiferentePrepara Una Navidad Diferente
Prepara Una Navidad Diferente
 
Dossier de presse février 2014 Théâtre La Coupole Saint-Louis
Dossier de presse février 2014 Théâtre La Coupole Saint-LouisDossier de presse février 2014 Théâtre La Coupole Saint-Louis
Dossier de presse février 2014 Théâtre La Coupole Saint-Louis
 
Estimer et Planifier
Estimer et PlanifierEstimer et Planifier
Estimer et Planifier
 
Consultas
ConsultasConsultas
Consultas
 
Folles statues cb
Folles statues cbFolles statues cb
Folles statues cb
 
Atelier M5 - 10 commandements - Responsable commercial - Salon e-tourisme Voy...
Atelier M5 - 10 commandements - Responsable commercial - Salon e-tourisme Voy...Atelier M5 - 10 commandements - Responsable commercial - Salon e-tourisme Voy...
Atelier M5 - 10 commandements - Responsable commercial - Salon e-tourisme Voy...
 
Etappenstall dp-mai-2014
Etappenstall dp-mai-2014Etappenstall dp-mai-2014
Etappenstall dp-mai-2014
 
Les cellules
Les cellulesLes cellules
Les cellules
 
Proposta Modificació1
Proposta Modificació1Proposta Modificació1
Proposta Modificació1
 
FR - Paramétrage - Gestion des articles
FR - Paramétrage - Gestion des articlesFR - Paramétrage - Gestion des articles
FR - Paramétrage - Gestion des articles
 
Slides Conferencedepresse Pw Cpaying Taxes2010
Slides Conferencedepresse Pw Cpaying Taxes2010Slides Conferencedepresse Pw Cpaying Taxes2010
Slides Conferencedepresse Pw Cpaying Taxes2010
 
Les verbes au présent de l'indicatif par silvia
Les verbes au présent de l'indicatif par silviaLes verbes au présent de l'indicatif par silvia
Les verbes au présent de l'indicatif par silvia
 
Web con Concepto
Web con ConceptoWeb con Concepto
Web con Concepto
 

Semelhante a Maven

20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
SLIDES-625.1.1-IDL-4-build tools maven.pdf
SLIDES-625.1.1-IDL-4-build tools maven.pdfSLIDES-625.1.1-IDL-4-build tools maven.pdf
SLIDES-625.1.1-IDL-4-build tools maven.pdfArouNa3
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsZenikaOuest
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationStéphane Traumat
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests PlanDenis Voituron
 
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueRossi Oddet
 
Industrialiation PHP plugfr
Industrialiation PHP plugfrIndustrialiation PHP plugfr
Industrialiation PHP plugfrpierredelacelle
 
Deux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsDeux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsAgile Tour 2009 Québec
 
JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logiciellejollivetc
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsFactoVia
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsAZUG FR
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+ekino
 
Migrer de Jenkins vers Azure DevOps les Builds Java
Migrer de Jenkins vers Azure DevOps les Builds JavaMigrer de Jenkins vers Azure DevOps les Builds Java
Migrer de Jenkins vers Azure DevOps les Builds JavaCédric Leblond
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapresLaurent Tardif
 

Semelhante a Maven (20)

20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
SLIDES-625.1.1-IDL-4-build tools maven.pdf
SLIDES-625.1.1-IDL-4-build tools maven.pdfSLIDES-625.1.1-IDL-4-build tools maven.pdf
SLIDES-625.1.1-IDL-4-build tools maven.pdf
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Présentation1
Présentation1Présentation1
Présentation1
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / Jenkins
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests Plan
 
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
 
Industrialiation PHP plugfr
Industrialiation PHP plugfrIndustrialiation PHP plugfr
Industrialiation PHP plugfr
 
Deux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsDeux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succès
 
JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logicielle
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure Devops
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure Devops
 
Dev opsday case study
Dev opsday   case studyDev opsday   case study
Dev opsday case study
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+
 
Migrer de Jenkins vers Azure DevOps les Builds Java
Migrer de Jenkins vers Azure DevOps les Builds JavaMigrer de Jenkins vers Azure DevOps les Builds Java
Migrer de Jenkins vers Azure DevOps les Builds Java
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 

Mais de Xavier Carpentier

Mais de Xavier Carpentier (6)

#Restful really ? ElsassJUG 17 juin 2014
#Restful really ? ElsassJUG 17 juin 2014#Restful really ? ElsassJUG 17 juin 2014
#Restful really ? ElsassJUG 17 juin 2014
 
Restful, really ? MixIt 2014
Restful, really ? MixIt 2014Restful, really ? MixIt 2014
Restful, really ? MixIt 2014
 
Hibernate
HibernateHibernate
Hibernate
 
Injection de dependance en Java
Injection de dependance en JavaInjection de dependance en Java
Injection de dependance en Java
 
Java Efficace
Java EfficaceJava Efficace
Java Efficace
 
Egoless
EgolessEgoless
Egoless
 

Maven

  • 2. Introduction • maven ... c’est quoi ? • Pourquoi maven ? • maven... pour quoi faire ? • maven... comment faire ?
  • 4. C’est quoi maven ? • Outil de build • Né de l’expérience des outils comme Makefile, Ant, etc. • En reprend les fonctionnalités principales (gestion des dépendances, script de construction) • Ajout de fonctions : test automatique, génération de rapport • Plugable
  • 6. Pourquoi maven ? • Éviter les constructions manuelles  • Standardiser le modèle de projet • Standardiser la chaîne de construction  • Automatiser le maximum • Gérer les dépendances • Faire plus que de la construction : • Exécution des tests unitaires • Génération de documentation • Génération de rapports de tests, de couverture code, d'analyses statique (checkstyle, PMD, CPD, ...)
  • 7. Pourquoi maven ? • Gestion des dépendances entre projets (dependency graph de m2eclipse)
  • 9. Comment faire ? • Convention != normes, obligations, contraintes... • Si tu veux configurer tu es libre mais débrouille toi... • KISS : Keep It Simple, Stupid  • Partir de rien, quand c'est possible • Industrialiser au maximum • Bien définir les dépendances, être minimaliste
  • 10. Comment faire ? • pom.xml • POM : Project Object Model • Situé à la racine du projet • Phase principales dans le cycle de vie de Maven  • compile • test • package • install • deploy
  • 11. Comment faire ? • pom.xml • POM : Project Object Model • Situé à la racine du projet • Phase principales dans le cycle de vie de Maven  • compile • test • package • install • deploy
  • 12. Comment faire ? • Convention des répertoires • /src : les sources du projet • /src/main : code source et fichiers source principaux • /src/main/java : code source • /src/main/resources : fichiers de ressource • /src/test : fichiers de test • /src/test/java : code source de test • /src/test/resources : fichiers de ressources de test • /src/site : informations sur le projet pour les rapports • /src/main/webapp : webapp du projet • /target : fichiers résultat, les binaires (du code et des tests), les packages générés et les résultats des tests
  • 13. Comment faire ? • Configuration local • $home • .m2 • settings.xml • repository • libs
  • 14. Comment faire ? • Les commandes maven de base • mvn install : compile le projet, exécute les tests, met a disposition le repository local • mvn clean install : supprime le fichier target et re-install • mvn test : exécute les tests unitaire du projet • mvn eclipse:eclipse :génère les .classpath et .project • mvn site : génère le site du projet, information général, rapport de test, de qualité, ...(conf. pom.xml requise)
  • 15. Comment faire ? • Comment faire planter son projet maven ? • En n’utilisant pas les conventions de Maven 2 (target, héritage, répertoires src…) • En ayant trop de sous modules avec des versions différentes (naissance de nouveaux projets involontairement) • En ayant trop de modules dans le même projet : pénalise la performance • En confondant dependencies et dependencyManagement • En confondant plugins et pluginManagement • En utilisant massivement antrun : empêche la réutilisation • En utilisant à outrance les profils : rend dépendant de l’environnement • En utilisant trop le reporting de qualité sur des projets déjà existant • En mettant tout et n’importe quoi dans le POM • En faisant des releases à la main
  • 16. Comment faire ? • Comment réussir son projet maven ? • Utiliser l’héritage « naturel » • Bien définir les dépendances, être minimaliste ! • Fixer les dépendances dans le dependencyManagement • On peut utiliser aussi le plugin reactor pour ne compiler que ce qui as été modifié
  • 17. L’intégration continue • But : prévenir les bogues, améliore le cycle de développement en réduisant les corrections en phase de robustesse • Intégration, test, contrôle de qualité • Lancement de la construction à chaque commit possible ou paramétré avec un délai • Les logiciels : • Hudson : coder à la base pour le projet Glassfish, très en vogue et très intuitif, facile à mettre en œuvre. Pour le tester en local : java –jar hudson.war (déployer sur http://localhost:8080/) • Bamboo : payant • Teamcity de Jetbrain, « build incassable » • Continuum : Apache, vieux produit pas très conviviale mais bien intégrer avec maven • CruiseControl : vieux produit !
  • 18. Joel test... Utilisez-vous un gestionnaire de source ?! Vos binaires sont-il assemblé en une fois ?! Vos binaires sont-il produits quotidiennement ?! Avez-vous un gestionnaire d’anomalie ?! Le code est-il corrigé avant d’être étendu ?! Avez-vous un planning à jour ?! Avez-vous des spécifications ?! Vos développeurs sont-il dans un lieu calme ?! Avez-vous les meilleurs outils pour votre budget ?! Avez-vous des testeur ?! Les recrues écrivent-elles du codes ?! Faites-vous des tests utilisateurs complet?