Maven : gestion de projet logiciel Java, J2EE

Fiche PLUME
  • Création ou MAJ importante : 05/10/2011
  • Correction mineure : 25/03/2013
  • Auteur : Thomas Leduc - CERMA (CNRS, Ministère de la Culture et de la Communication)
  • Contributions importantes :

    Emmanuel Coquery


  • Responsable thématique : Pascal Dayre (IRIT)
  • Relecteur 1 : Emmanuel Coquery
  • Relecteur 2 : Jean-Baptiste Voron
  • Relecteur 3 : Nicolas Dumoulin
Mots clés
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