Index of /GestionProjetInfo/Outils/Maven

Icon  Name                       Description
[PARENTDIR] Parent Directory           
<style>
#contenu h1 { padding: 2px 10px;}
#contenu h1>* { background-color: rgba(255, 238, 221, 0.8);margin: 0 10px;padding: 0 10px;border: 2px solid #114499;} 
.attention { background-color: rgba(255, 238, 221, 0.8); border:1px dotted #114499;margin: 0 10px;padding: 0 10px;color:#991144; }
</style>
<h1><span>Maven</span></h1>


<style>
#contenu dl dt { padding-top:6px;padding-bottom:2px;/*text-decoration:underline;*/color: #114499;} 
#contenu dl:after {clear:both; content:' ';display:block; }
#contenu table th:last-child {background-color: rgba(255, 238, 221, 0.8);margin: 0 10px;padding: 0 10px;border: 1px solid #114499;}
#contenu i { color: #114499; }
</style>

<dl>
<dt>A quoi sert Maven ?</dt>
<dd>
Maven est un outil permettant d'automatiser la gestion de projets Java.
<br />
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)
</dd>
<dt>Problématique</dt>
<dd>
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.
<br />
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.
<br />
Maven permet donc de s'affranchir de ces contraintes et d'uniformiser le déploiement des applications.
</dd>
<dt>Origines du besoin</dt>
<dd>
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.
</dd>
<dt>Repository Maven</dt>
<dd>
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.
</dd>
<dt>Comparaison avec Ant</dt>
<dd>
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.
<br />
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.
<br >/
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. 
</dd>
</dl>

<h2>Références</h2>
<ul>
  <li>Le site officiel : <a href="http://maven.apache.org" target="_blank"> http://maven.apache.org</a> </li>
  <li>Le projet libre de création de nouveau plugins : <a href="http://maven-plugins.sourceforge.net" target="_blank">http://maven-plugins.sourceforge.net</a> </li>
  <li>Une présentation plutôt bien faite : <a href="http://www.devx.com/Java/Article/17204" target="_blank">http://www.devx.com/Java/Article/17204</a> </li>
</ul>
<ul>
  <li><a href="http://www-igm.univ-mlv.fr/~dr/XPOSE2003/Presentation_Maven.ppt">Powerpoint de la présentation </a></li>
</ul>

<p class="signature" style="text-align:right;font-size:80%;font-style:italic;"> Ce contenu est largement inspiré 
du livre <a href="http://www-igm.univ-mlv.fr/~dr/XPOSE2003/site_maven/">Présentation du projet Apache : Maven</a>
de ??  de l'Université de Marne-la-Vallée. </p>