> Présentation  
 

A quoi sert Maven ?

Maven est un outil permettant d'automatiser la gestion de projets Java.
Il offre entre autres les fonctionalités suivantes :

  • Compilation et déploiement des applications Java (JAR, WAR)
  • Gestion des librairies requises par l'application
  • Exécution des tests unitaires
  • Génération des documentations du projet (site web, pdf, Latex)
  • Intégration dans différents IDE (Eclipse, JBulder)

Problématique

Le déploiement d'applications est devenu aujourd'hui un vrai casse-tête. En effet, à chaque phase du projet, les développeurs doivent gérer un environnement différent : intégration, recette, pré-production, production. Chaque environnement possède ses propres caractéristiques : adresses IP, serveurs de bases de données, etc.

Aujourd'hui, les applications sont la plupart du temps générées à l'aide de scripts Ant, de shell scripts ou même à la main. Cela revient souvent à faire des multitudes de copier/coller de scripts et à les réadapter à chaque projet.

Maven permet donc de s'affranchir de ces contraintes et d'uniformiser le déploiement des applications.

Origines du besoin

Initialement, Maven a été crée comme outil d’aide au développement d’un autre projet jakarta : Turbine. Les développeurs sont en effet partis du constat que les différents projets jakarta possédaient chacun leurs propres fichiers de compilation ant. Les développeurs voulaient donc une façon standard de compiler les projets, une façon simple de publier les informations du projet et une façon de partager les jar entre projets.

Repository Maven

Afin de bien gérer les dépendances, Maven s'appuie sur des repositories de librairies (jar). Ces repositories peuvent être locaux à la machine ou accessibles via HTTP. Ainsi, à sa première exécution, Maven télécharge les différents plugins dont il a besoin et les installe dans le répertoire .maven/repository situé dans le répertoire de travail de l'utilisateur. Ainsi, ces même librairies peuvent être réutilisées entre les différents projets.

Comparaison avec Ant

A première vue, on peut être tenté de comparer Ant et Maven. Mais on se rend rapidement compte que Maven propose une alternative beaucoup plus simple.

En effet, le fichier de configuration de Maven présenté ici, est beaucoup plus simple que le fichier de configuration build.xml nécessaire à Ant. De plus, Maven offre des fonctionalités que Ant ne posséde pas. Maven est aussi plus flexible car il permet aux utilisateurs la création de leurs propres plugins à 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.

En réalité Maven et Ant ne sont pas concurrents car ils sont développés de toutes façons tous les deux par la communauté Jakarta. Seulement, ils répondent chacun à des besoins et des degrés de spécifications différents.

 


Ingenieurs2000 27 février 2004