Gestionnaire de projets JAVA Présenté par Sébastien PITOISET IR3 Jeudi 16 octobre 2003 1 Plan Introduction Les projets Jakarta Présentation des concepts Utilisation Exemples pratiques Conclusion 1 Introduction Raisons du choix Projet Apache Jakarta Origines du besoin Que permet-il ? Compiler et déployer des applications (JAR, WAR) Gérer les dépendances : librairies à jour Effectuer les tests unitaires, formater les sources Générer la documentation complète du projet 1 Les projets Jakarta Projets professionnels de référence Organisation de l’équipe : technocratie initiateur = architecte vote des nouveaux objectifs Devenir contributeur Organisation du travail : cvs, mailing lists… 1 Présentation des concepts Les builds de projet aujourd’hui Simplicité de Maven : POM Structure du fichier project.xml source directory nom des développeurs, société repository cvs : dépendances repertoires de tests unitaires 1 Présentation des concepts Comparatif avec Ant Ant = make multi plate-forme build.xml vs SourceDirectory target et tâches non réutilisables Compatibilité des deux Système de plugins Utilisation : #maven nom_plugin:goal 1 Utilisation Exemples de plugins jar, war pdf, latex (documentation) eclipse, jbulder Personalisation et création de plugin maven.xml : ajout d’extensions <PostGoal> et <PreGoal> maven.xml : création de goals Développement de plugins en jelly 1 Utilisation Jelly <?xml version="1.0" encoding="ISO-8859-1"?> <project xmlns:j="jelly:core"> <goal name="Echo Dependencies"> <j:forEach var="dep” items="${pom.dependencies}"> <echo>${pom.getDependencyPath(dep.getId())}</echo> </j:forEach> </goal> </project> 1 Exemples pratiques Installation maven.apache.org $MAVEN_HOME et $JAVA_HOME Démo # maven java:compile # maven jar # maven site:generate 1 Conclusion Défauts Projet récent : peu de docs Lenteurs d’exécution Améliorations futures Développement de plugins en Java, Python… Amélioration des performances Support de projets écrits dans d’autres langages Posez-vous les bonnes questions ! 1 Références http://maven.apache.org Emmanuel Venisse : [email protected] http://www-106.ibm.com/developerworks/java/library/j-maven/ Livre en préparation 1