Apache Maven : POM, cycle de vie et dépendances
Date de publication:
Mise à jour :
Articles > Apache Maven : POM, cycle de vie et dépendances
Maven en 2026 : principes et précautions
En bref : Maven est un outil de build et de gestion de projets Java fondé sur des conventions. Le POM décrit le projet, ses dépendances, ses plugins et ses paramètres ; le cycle de vie fournit ensuite une suite reproductible d'étapes pour compiler, tester, empaqueter, vérifier et publier les artefacts.
Ce que vous apprendrez
- Ce que Maven prend en charge et ce qui reste du ressort du dépôt de code ou de la CI.
- Le lien entre coordonnées Maven, dépôts, plugins, phases et portées des dépendances.
- La place de la résolution des dépendances dans l'ensemble du processus de build.
Public visé : les développeurs Java qui découvrent Maven ou doivent comprendre un fichier pom.xml existant.
Mise à jour 2026 : privilégiez le Maven Wrapper, fixez les versions des plugins, protégez les identifiants des dépôts et contrôlez le POM effectif dans la CI. Les exemples présentent les principes ; vérifiez dans la documentation officielle la compatibilité des plugins avec la version du JDK utilisée.
Sécurité : les commandes et configurations historiques n'ont pas été rejouées dans une production actuelle. Validez d'abord versions, sauvegardes, droits d'accès et procédure de retour arrière dans un environnement de test isolé.
Sources primaires officielles
Vue d’ensemble
Apache Maven, généralement appelé Maven, orchestre le build d'un projet Java à partir d'un modèle objet de projet, le POM. Ce guide présente ses responsabilités afin de comprendre ce qui se passe derrière une commande mvn.
Table des matières
1. Qu'est-ce que Maven ?
Maven est un outil de build et de gestion de projet. Pour distinguer compilation, packaging et build complet, consultez aussi les étapes d'un build Java.
Un build Maven peut notamment coordonner les opérations suivantes :
- résoudre les dépendances JAR ;
- compiler le code et exécuter les tests ;
- choisir les répertoires de sortie ;
- produire des artefacts JAR ou WAR.
La présentation officielle de Maven résume ainsi les objectifs du projet :
Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal, Maven deals with several areas of concern:
- Making the build process easy
- Providing a uniform build system
- Providing quality project information
- Encouraging better development practices
Concrètement, Maven fournit un modèle conventionnel et reproductible pour décrire puis exécuter le build d'un projet.
2. Ce que Maven prend en charge
Les fonctions suivantes rendent le build plus reproductible et plus simple à maintenir.
2-1. Exécuter les phases du build
Les phases du cycle de vie appellent les plugins configurés dans un ordre défini. Parmi les commandes courantes :
- mvn test compile le code et exécute les tests ;
- mvn clean supprime les résultats générés ;
- mvn package crée l'artefact configuré, par exemple un JAR ou un WAR.
2-2. Résoudre les dépendances
Une dépendance déclarée peut elle-même nécessiter d'autres artefacts. Maven lit leur POM et résout ces dépendances transitives en tenant compte de la portée, du caractère optionnel, des exclusions et des règles de sélection de version.
Le guide sur la résolution des dépendances transitives détaille le rôle des POM et des dépôts.
2-3. Décrire les dépendances et leur portée
Une déclaration de dépendance indique des coordonnées et une version, pas seulement le nom d'un fichier JAR. Sa portée précise quand l'artefact est requis : compilation, exécution ou tests, par exemple.
Le fichier pom.xml recense aussi les plugins et les paramètres du projet. Il rend la définition du build portable, mais une reproduction fidèle suppose également des dépôts maîtrisés, des versions de plugins fixées, un JDK pris en charge et des paramètres externes cohérents.
3. Conclusion
Maven décrit le projet dans un POM et exécute, par l'intermédiaire de plugins, un cycle de vie standard. Il couvre la résolution des dépendances, la compilation, les tests, le packaging, la vérification et la publication ; le comportement exact dépend du POM effectif et de la phase demandée.