{{tag>Xenial programmation}}
----
====== Maven ======
**Apache Maven** est un outil logiciel libre pour la gestion et l'automatisation de production des projets logiciels Java en général et Java EE en particulier. L'objectif recherché est comparable au système Make sous Unix : produire un logiciel à partir de ses sources, en optimisant les tâches réalisées à cette fin et en garantissant le bon ordre de fabrication.
Il est semblable à l'outil [[Ant]], mais fournit des moyens de configuration plus simples, eux aussi basés sur le format XML. Maven est géré par l'organisation //Apache Software Foundation//. Précédemment, Maven était une branche de l'organisation //Jakarta Project//.
Maven utilise un paradigme connu sous le nom de //Project Object Model// (POM) afin de décrire un projet logiciel, ses dépendances avec des modules externes et l'ordre à suivre pour sa production. Il est livré avec un grand nombre de tâches pré-définies, comme la compilation de code Java ou encore sa modularisation.
Maven est un outil très riche qui gagne beaucoup de terrain. C'est aussi un outil jeune, mais dont l'évolution est remarquable.
Un élément clé et relativement spécifique de Maven est son aptitude à fonctionner en réseau. Une des motivations historiques de cet outil est de fournir un moyen de synchroniser des projets indépendants : publication standardisée d'information, distribution automatique de modules jar. Ainsi en version de base, Maven peut dynamiquement télécharger du matériel sur des entrepôts logiciels connus. Il propose ainsi la synchronisation transparente de modules nécessaires.
===== Pré-requis =====
* Disposer des [[:sudo|droits d'administration]].
* Disposer d'une connexion à Internet configurée et activée.
* Avoir installé[[:Java]].
===== Installation =====
Toute installation de Maven nécessitera l'[[:tutoriel:comment_installer_un_paquet|installation du paquet]] **[[apt>maven]]**.
===== Configuration =====
==== Variables d'environnement ====
Normalement, l'installation du paquet a du effectuer toutes les étapes de configuration. Cette section ne devrait donc concerner que les gens qui opèrent une installation en mode manuel.
* [[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] **/etc/environment** et définissez-y les variables suivantes (à adapter selon votre configuration) :
M2_HOME="/usr/local/apache-maven/apache-maven-3.0.3"
M2=$M2_HOME/bin
JAVA_HOME="/usr/lib/jvm/java-6-openjdk"
PATH="$JAVA_HOME/bin:$M2:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
* Puis rechargez vos variables d'environnement //via// la commande « ''source /etc/environment'' ».
==== Paramètres de configuration ====
La configuration des paramètres de configuration dépend essentiellement de vos préférences. Dans le cas d'une utilisation standalone, vous n'aurez rien de particulier à faire. Si la machine où vous installez Maven est un serveur d'entreprise, vous souhaiterez probablement que le répertoire de travail de Maven ne soit pas dans votre Home d'administrateur, mais que ce soit un dossier commun, par exemple ''/opt/maven-work'' auquel vous aurez attribué les permissions d'écriture correspondante à celles de l'utilisateur (hudson?) chargé de lancer les taches de compilation. Auquel cas il vous faudra [[:tutoriel:comment_modifier_un_fichier|ouvrir le fichier]] **$M2_HOME/conf/settings.xml** et y ajouter le paramètre suivant :
/opt/mvn-work
C'est également dans ce fichier qu'il vous faudra configurer vos paramètres d'accès à votre gestionnaire de dépôt d'entreprise si vous en avez installé un (par exemple [[Nexus]]).
===== Utilisation=====
Vous pouvez vérifier que mvn est bien installé via la commande ''mvn -version''. Par la suite, l'installation se fait de manière usuelle en ligne de commande. Par exemple vous pouvez effectuer un checkout sur un projet Maven depuis votre gestionnaire de version préféré, et lancer une compilation via la commande ''mvn compile''
===== Désinstallation =====
Si vous avez installé Maven depuis les dépôts, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.
Dans le cas d'une installation manuelle, il suffit de supprimer les répertoires que vous avez créés, et le cas échéant, d'enlever aussi les variables d'environnement que vous avez pu définir.
===== Voir aussi =====
* [[https://maven.apache.org/|Site officiel]] **(en)**
* [[wpfr>Apache_Maven|Article sur Wikipédia]] **(fr)**
----
//Contributeurs : [[:utilisateurs:kwiky]], [[:utilisateurs:Aldian]].//