Maven

Fiche logiciel validé
  • Création ou MAJ importante : 05/10/11
  • Correction mineure : 25/03/13
Mots-clés

Maven : gestion de projet logiciel Java, J2EE

Description
Fonctionnalités générales

Apache Maven est un outil complet de gestion de projet logiciel Java, J2EE… dans la mesure où il accompagne la production de code dans toutes les phases de son cycle de vie. C’est un outil plus complet que Ant. Il est indispensable pour tout ce qui a trait à la gestion transitive des dépendances, la compilation, les tests unitaires et le déploiement.

Autres fonctionnalités

Maven possède un système de plugins permettant d'ajouter des fonctionnalités au besoin (sur le même principe que la création de nouvelles tâches Ant en Java).

Des gestionnaires de dépôts sont associés à Maven (http://maven.apache.org/repository-management.html) permettant de construire un dépôt local des différents dépôts des composants logiciels constituant votre projet. Cela permet de limiter les requêtes réseau si il y a de nombreux développeurs, de filtrer les composants selon leur licence par exemple, de suivre les nouvelles versions, de configurer les déploiements de votre projet, ou bien de mettre à disposition vos propres dépendances non disponibles sur des dépôts tiers.

Interopérabilité

À travers ses plugins, Maven publie des archives au format JAR ou ZIP.
Le fichier de configuration d'un projet (le Project Object Model) est stocké en XML.

Contexte d'utilisation dans mon laboratoire/service

Au CERMA c'est un outil que nous utilisons (ou avons utilisé) quotidiennement dans le cadre du développement des projets GearScape et OrbisGIS pour la gestion transitive des dépendances, la compilation, les tests unitaires et le déploiement.

Ce logiciel est également utilisé dans le cadre de TPs Java / JEE où sa gestion des dépendances et les différents plugins d'exécution et de test permettent de gagner du temps et de minimiser l'impact sur la configurations des machines de TP. Le système de génération d'archetypes (mini-projets préconfigurés) est particulièrement utile de ce point de vue.

Environnement du logiciel
Logiciels connexes

Nous utilisons Maven avec l'environnement de développement Eclipse.
Maven est également intégré dans l'environnement de développement Netbeans et un support limité à l'exécution pour Emacs.

La communauté Maven a donné jour à de nombreux plugins permettant de l'utiliser avec d'autres langages (pour l'essentiel compilant vers la JVM). On peut ainsi trouver des plugins de compilation et/ou exécution pour JavaCC, Ruby, Scala, JavaScript via Rhino, etc.

Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Les listes de diffusion anglophones sont disponibles sur le site http://maven.apache.org/mail-lists.html
Les archives de la liste des utilisateurs (anglophones) sont disponibles à l'adresse http://mail-archives.apache.org/mod_mbox/maven-users/

Documentation utilisateur

Commentaires

Plugin C/C++

Suite à une discussion privée avec l'auteur sur la disponibilité de plugins C/C++, je me permets d'ajouter cette note concernant la source http://everythingiswrong.free.fr/index.php/2011/07... qui indique maven-nar-plugin comme une alternative utilisable "presque sans effort" ("Lorsque j’écris “presque” sans effort c’est tout simplement parce que les plugins nécessaires ne sont pas encore disponible sur le repository central." indique l'auteur en 2011.)

Guides de référence en français

Deux guides de référence sont traduits en français et disponibles ici : http://maven-guide-fr.erwan-alliaume.com/

Une série de tutoriels (en anglais)

88 tutoriels maven en anglais sont disponibles à l'adresse : http://www.avajava.com/tutorials/categories/maven