
Commandes utiles : Maven
- Charles Fleury
- Outils , Java
- 14 août 2026
Sommaire
Introduction
Une fois les phases classiques de Maven maîtrisées, la ligne de commande offre des outils beaucoup plus puissants pour expliquer un build, isoler un conflit de dépendances ou accélérer un projet multi-module.
Cette sélection se concentre volontairement sur des usages avancés ou très avancés. Toutes les commandes sont à exécuter depuis le répertoire contenant le fichier pom.xml, sauf indication contraire. Remplacez les noms de modules, de propriétés et d’artefacts par ceux de votre projet.
Liste de commandes
Précharger les dépendances pour travailler hors ligne
mvn dependency:go-offline
Résout à l’avance les dépendances, plugins et rapports nécessaires au build. Cette commande est particulièrement utile avant de créer une image de build destinée à fonctionner sans accès au réseau. Son efficacité dépend toutefois des profils et des plugins réellement activés lors du build final.
Afficher l’arbre des dépendances
mvn dependency:tree -Dverbose -Dincludes=org.slf4j:slf4j-api
Filtre l’arbre sur un artefact et affiche les dépendances omises lors de la résolution des conflits. Le filtre accepte la forme [groupId]:[artifactId]:[type]:[version] ainsi que les jokers *.
Pour exploiter le graphe avec un outil externe, le plugin peut aussi le produire au format DOT :
mvn dependency:tree -DoutputType=dot -DoutputFile=dependencies.dot
Détecter les dépendances inutilisées ou manquantes
mvn dependency:analyze
Signale les dépendances déclarées mais apparemment inutilisées, ainsi que celles utilisées sans être déclarées directement. Les résultats doivent être relus avec attention, car la réflexion et la génération de code peuvent produire des faux positifs.
Vérifier l’alignement avec dependencyManagement
mvn dependency:analyze-dep-mgt
Compare les versions réellement résolues avec celles déclarées dans dependencyManagement. Cette analyse aide à repérer une dépendance qui échappe au BOM ou à la politique de versions du projet.
Construire le classpath dans un fichier
mvn dependency:build-classpath -Dmdep.outputFile=classpath.txt
Écrit le classpath résolu dans un fichier. Cette sortie est pratique pour alimenter un outil externe, reproduire une exécution hors de Maven ou comparer précisément deux environnements.
Télécharger un artefact sans modifier le projet
mvn dependency:get -Dartifact=org.example:library:1.2.3 -Dtransitive=false
Télécharge un artefact précis dans le dépôt local, même s’il n’est pas déclaré dans le projet courant. Retirez -Dtransitive=false pour résoudre également ses dépendances transitives.
Purger un artefact défectueux du dépôt local
mvn dependency:purge-local-repository \
-DmanualInclude=org.example:library \
-DreResolve=false
Supprime uniquement l’artefact ciblé du dépôt local, sans effacer tout ~/.m2/repository. Cette commande est utile face à un téléchargement corrompu ; Maven récupérera de nouveau l’artefact au prochain build.
Afficher les profils actifs
mvn help:active-profiles
Liste les profils effectivement actifs et indique leur origine. Pratique lorsqu’un profil est activé par un fichier settings.xml ou par une propriété moins visible.
Afficher le POM effectif et l’origine de chaque valeur
mvn help:effective-pom -Dverbose
Affiche le POM réellement utilisé après l’héritage, l’activation des profils et l’application des valeurs par défaut. L’option -Dverbose ajoute des commentaires indiquant le fichier source de chaque élément : c’est souvent le moyen le plus rapide de retrouver une configuration héritée d’un parent.
Inspecter la configuration Maven effective
mvn help:effective-settings
Affiche la fusion des paramètres globaux et utilisateur, notamment les miroirs, profils et dépôts. Attention : la sortie peut contenir des informations sensibles et ne doit pas être publiée telle quelle.
Lire une propriété du projet
mvn help:evaluate -Dexpression=project.version -q -DforceStdout
Retourne uniquement la version effective du projet. En remplaçant project.version par une autre expression Maven, cette commande s’intègre facilement dans un script.
Obtenir l’aide détaillée d’un plugin
mvn help:describe -Dplugin=compiler -Ddetail
Décrit les objectifs et paramètres du plugin demandé. Ajoutez -Dgoal=compile pour limiter l’aide à un objectif particulier.
Rechercher les mises à jour sans modifier le POM
mvn versions:display-dependency-updates versions:display-plugin-updates
Liste les versions plus récentes disponibles pour les dépendances et les plugins. Ces objectifs sont informatifs : ils ne modifient pas le pom.xml.
Construire un module et ses dépendances
mvn -pl :api -am verify
Dans un projet multi-module, -pl :api sélectionne le module par son artifactId et -am ajoute les modules dont il dépend. Pour construire au contraire les modules qui dépendent de api, utilisez -amd. Les deux options peuvent être combinées.
Reprendre un build multi-module après un échec
mvn -rf :api verify
Reprend le reactor Maven à partir du module dont l’artifactId est api. Cette option est particulièrement utile après l’échec d’un build long.
Continuer le reactor pour regrouper les erreurs
mvn --fail-at-end verify
Poursuit les modules indépendants après un échec et reporte toutes les erreurs à la fin. Dans un gros reactor ou en CI, cette stratégie évite de relancer plusieurs fois le build pour découvrir les problèmes un par un.
Paralléliser le build
mvn -T 1C clean verify
Utilise un thread par cœur processeur pour construire les modules qui peuvent l’être en parallèle. Le gain dépend de la structure du projet et de la compatibilité des plugins avec l’exécution concurrente.
Afficher les informations de débogage
mvn -X verify
Active les traces détaillées de Maven. La sortie est très volumineuse, mais précieuse pour diagnostiquer la résolution d’une dépendance, un plugin ou l’activation inattendue d’un profil.
Produire des logs stables pour la CI
mvn --batch-mode --no-transfer-progress -Dstyle.color=never verify
Désactive les interactions, les barres de progression des téléchargements et les couleurs. Les journaux deviennent plus lisibles, plus compacts et plus faciles à analyser automatiquement.
Conclusion
Les commandes les plus rentables ne lancent pas seulement le build : elles rendent visible ce que Maven a calculé. help:effective-pom, help:evaluate et dependency:tree expliquent la configuration et la résolution ; les options du reactor permettent ensuite de limiter précisément le travail à effectuer.
Dans un projet qui fournit le Maven Wrapper, remplacez simplement mvn par ./mvnw. Vous utiliserez ainsi la version de Maven prévue par le projet et rendrez les builds plus reproductibles, aussi bien en local que dans l’intégration continue.