110 likes | 197 Views
This presentation by Sébastien PITOISET covers the usage, organization, and practical examples of Java projects using Apache Jakarta. Explore reasons behind choosing Jakarta, managing dependencies, performing tests, and generating project documentation. Learn about project structures, team organization, build processes with Maven, and comparison with Ant. Discover how to use plugins, develop extensions in Jelly, and enhance performance. Consider future improvements, multi-language support, and important references for further reading.
E N D
Gestionnaire de projets JAVA Présenté par Sébastien PITOISET IR3 Jeudi 16 octobre 2003
Plan • Introduction • Les projets Jakarta • Présentation des concepts • Utilisation • Exemples pratiques • Conclusion
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
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…
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
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
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
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>
Exemples pratiques • Installation • maven.apache.org • $MAVEN_HOME et $JAVA_HOME • Démo • # maven java:compile • # maven jar • # maven site:generate
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 !
Références • http://maven.apache.org • Emmanuel Venisse : emmanuel@venisse.net • http://www-106.ibm.com/developerworks/java/library/j-maven/ • Livre en préparation