Apache Maven par Michel VONGVILAY

I. Maven ou Ant ?

Il n'y a rien que Maven fasse que Ant ne puisse faire. De plus Ant et Maven sont tous deux developpés par l'équipe « Apache Jakarta ».

I.1 Pourquoi avoir développé Maven ?

La structure de développement et le déploiement (EARs, WARs et EJB-JARs) des projets J2EE sont aujourd'hui beaucoup plus standardisés. Ant est plus ancien que Maven. Ainsi Maven propose les fonctionnalités de ANT mais aussi de nombreuses autres qui répondent plus aux standards et aux besoins des développeurs d'aujourd'hui. Maven est aussi plus flexible car il permet de créer plus facilement ses plugings (en jelly) à la différence de Ant qui reste relativement statique. Enfin, les scripts Ant ne sont pas réutilisables entre projets, alors que le but de Maven est justement de fournir des fonctionalités réutilisables

De plus, le concept POM permet d'avoir une compréhension plus simple et plus complète du projet. Contrairement à Ant, Maven offre des outils de gestion de projet de haut niveau. En effet, en examinant un script Ant, il est difficile de trouver les dépendances du projet ou toutes autres informations telles que les développeurs, la version ou le site web.

Pour ma part, je trouve que Maven est plus simple à écrire. A titre de comparaison, la création d'un projet simple prend 2 à 3 lignes avec Maven contre une douzaine de lignes avec ANT.

On peut grossièrement faire une analogie avec le C pour Ant et Java (ou C++) pour Maven. D'ailleurs, les plugins Maven sont un peu comme les bibliothèques JDK. Maven, comme Java, réduit la complexité par rapport à Ant. Cependant il y a quelques tâches que seul le C peut faire, mais pour la majorité des developpements, Java suffit. Ce que je voulais souligner c'est que Maven et Ant ciblent deux différents aspects du problème de construction de projet. Ainsi Maven s'adapte pour la plupart des projets, cependant Ant est plus adapté pour les projets très spécifiques et très complexes.

Pour résumer, l'utilisation de Maven par rapport à Ant fournit trois principaux avantages:
    - L'aptitude de créer des goals (fonctions) réutilisables
    - Une large bibliothèques de goals prédéfinis (les plugins)
    - Les scripts sont plus flexibles grâce au langage Jelly



<< page précédente page suivante >>

Valid XHTML 1.0!