| Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide Consultez : | ![]() |
Ce chapitre traite des différentes manières de personnaliser Maven durant son exécution. Il traite aussi de certains points particuliers comme la possibilité de modifier le comportement du Maven Reactor et comment utiliser le plugin Maven Help pour obtenir des informations sur les plugins et leurs goals.
La section qui va suivre donne, en détail, les différentes options en ligne de commande pour Maven.
Pour définir une propriété, vous devez utiliser l'option suivante sur la ligne de commande :
Définit une propriété système
C'est l'option la plus utilisée pour personnaliser le comportement des plugins Maven. Voici quelques exemples d'utilisation de l'argument -D en ligne de commande :
$ mvn help:describe -Dcmd=compiler:compile $ mvn install -Dmaven.test.skip=true
Les propriétés définies sur la ligne de commande sont disponibles dans le POM Maven ou pour un plugin Maven. Pour plus d'informations sur le référencement des propriétés Maven, lisez le Chapitre 9, Propriétés et filtrage des ressources.
Les propriétés peuvent aussi être utilisées pour activer des profils de build. Pour plus d'informations sur les profils de build Maven, lisez le Chapitre 5, Profils de Build.
Pour obtenir la liste des différents paramètres de la ligne de commande, utilisez l'option de ligne de commande suivante :
Affiche l'aide
L'exécution de Maven avec cette option produit le résultat suivant :
$ mvn --help
usage: mvn [options] [<goal(s)>] [<phase(s)>]
Options:
-am,--also-make If project list is specified, also
build projects required by the
list
-amd,--also-make-dependents If project list is specified, also
build projects that depend on
projects on the list
-B,--batch-mode Run in non-interactive (batch)
mode
-C,--strict-checksums Fail the build if checksums don't
match
-c,--lax-checksums Warn if checksums don't match
-cpu,--check-plugin-updates Force upToDate check for any
relevant registered plugins
-D,--define <arg> Define a system property
-e,--errors Produce execution error messages
-emp,--encrypt-master-password <arg> Encrypt master security password
-ep,--encrypt-password <arg> Encrypt server password
-f,--file Force the use of an alternate POM
file.
-fae,--fail-at-end Only fail the build afterwards;
allow all non-impacted builds to
continue
-ff,--fail-fast Stop at first failure in
reactorized builds
-fn,--fail-never NEVER fail the build, regardless
of project result
-gs,--global-settings <arg> Alternate path for the global
settings file
-h,--help Display help information
-N,--non-recursive Do not recurse into sub-projects
-npr,--no-plugin-registry Don't use
~/.m2/plugin-registry.xml for
plugin versions
-npu,--no-plugin-updates Suppress upToDate check for any
relevant registered plugins
-o,--offline Work offline
-P,--activate-profiles <arg> Comma-delimited list of profiles
to activate
-pl,--projects <arg> Build specified reactor projects
instead of all projects
-q,--quiet Quiet output - only show errors
-r,--reactor Dynamically build reactor from
subdirectories
-rf,--resume-from <arg> Resume reactor from specified
project
-s,--settings <arg> Alternate path for the user
settings file
-U,--update-snapshots Forces a check for updated
releases and snapshots on remote
repositories
-up,--update-plugins Synonym for cpu
-V,--show-version Display version information
WITHOUT stopping build
-v,--version Display version information
-X,--debug Produce execution debug output
Si vous voulez de l'aide sur les goals et les paramètres disponibles pour un plugin Maven spécifique, allez à la Section 6.3, « Usage du plugin Maven Help ».
Pour activer un ou plusieurs profils depuis la ligne de commande, il vous faut utiliser l'option suivante :
Liste de profils à activer séparés par des virgules
Pour plus d'informations sur les profils de build, rendez-vous au Chapitre 5, Profils de Build.
Pour afficher les informations sur la version de Maven, voici l'option à utiliser :
Affiche la version SANS arrêter le build en cours
Affiche la version
Ces deux options affichent le même résultat, cependant l'option -v va arrêter Maven après avoir affiché la version. Utilisez l'option -V si vous voulez afficher les informations sur la version de Maven au début des traces de votre build. Cela peut-être pratique si vous exécutez Maven dans un environnement d'intégration continue et que vous voulez connaître quelle version de Maven a été utilisée pour un build particulier.
Exemple 6.1. Informations relatives à la version de Maven
$ mvn -v
Apache Maven 2.2.1 (r801777; 2009-08-06 14:16:01-0500)
Java version: 1.6.0_15
Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x" version: "10.6.1" arch: "x86_64" Family: "mac"
Si vous devez utiliser Maven sans connexion réseau, vous devez utiliser l'option suivante afin d'éviter que Maven vérifie les éventuelles mises à jour des plugins ou des dépendances via le réseau :
Travailler en mode déconnecté
Quand Maven s'exécute avec cette option, il n'essaye pas de se connecter à un dépôt distant pour récupérer des artefacts.
Si vous n'aimez pas le nom de votre fichier pom.xml, l'endroit où sont enregistrés vos préférences Maven ou
le répertoire par défaut où se trouve le fichier de configuration globale de Maven, vous pouvez personnaliser tout
cela avec les options suivantes :
Force l'utilisation d'un fichier POM alternatif
Chemin alternatif vers votre fichier de configuration personnel
Chemin alternatif vers le fichier de configuration global
Les commandes Maven suivantes vous permettent de chiffrer les mots de passe enregistrés dans vos fichiers de préférences Maven :
Chiffre le mot de passe principal
Chiffre le mot de passe du serveur
Le chiffrement des mots de passe est décrit plus en détails dans la Section A.2.11, « Chiffrement des mots de passe dans les Settings Maven ».
Les options suivantes permettent de contrôler le comportement de Maven lors de l'échec d'un build en plein milieu d'un build multimodule :
Le build n'échoue qu'à la fin ; tous les modules non-impactés sont construits
Arrêt au premier échec dans les builds
AUCUN échec, quelque soit le résultat de la construction du projet
Les options -fn et -fae sont utiles pour les builds multimodules qui sont exécutés par un outil d'intégration continue comme Hudson. L'option -ff est très utile pour les développeurs qui exécutent des builds interactifs et qui veulent rapidement des retours durant le développement.
Si vous voulez contrôler le niveau de trace de Maven, vous pouvez utiliser une de ces trois options de ligne de commande :
Affiche les messages d'erreur lors de l'exécution
Affiche les traces en mode debug
Mode silencieux - n'affiche que les erreurs
Avec l'option -q un message n'est affiché que lorsqu'il y a une erreur ou un problème.
Avec l'option -X vous serez submergé de messages de debug. Cette option est surtout utilisée par ceux qui développent Maven et ses plugins pour diagnostiquer un problème avec du code Maven lors du développement. Cette option -X est très utile lorsque vous essayez de trouver la cause d'un problème très délicat avec une dépendance ou un classpath.
L'option -e est pratique si vous êtes un développeur Maven ou si vous avez besoin de diagnostiquer une erreur dans un plugin Maven. Si vous remontez une anomalie sur Maven ou l'un de ses plugins, n'oubliez pas de fournir les traces obtenues avec les deux options -X et -e.
Pour exécuter Maven en mode batch, utilisez l'option suivante :
Exécution en mode non-intéractif (batch)
Le mode batch est nécessaire lorsque vous devez exécuter Maven dans un environnement d'intégration continue sans interactions possibles. Quand vous exécutez Maven en mode non-interactif, celui-ci n'accepte aucune entrée utilisateur. Au lieu de cela, il utilise les valeurs par défaut 'intelligentes' lorsqu'il a besoin d'entrées.
Les options suivantes de la ligne de commande modifient le comportement de Maven vis-à-vis des dépôts distants ainsi que la vérification des artefacts téléchargés :
Fait échouer le build si les checksums ne correspondent pas
Affiche une alerte si les checksums ne correspondent pas
Force la recherche de mises à jour de versions stables et snapshots sur les dépôts distants
Si pour vous la sécurité est importante, utilisez l'option -C à l'exécution de Maven. Les dépôts Maven possèdent un checksum MD5 et SHA1 pour chaque artefact stocké. Maven est configuré pour avertir l'utilisateur final lorsque le checksum ne correspond pas à l'artefact téléchargé. L'utilisation de l'option -C fera échouer le build si Maven rencontre un artefact avec un mauvais checksum.
L'option -U est très utile lorsque vous voulez vous assurer que Maven vérifie qu'il utilise bien les dernières versions stables et SNAPSHOT des dépendances.
Les options de ligne de commande suivantes indiquent à Maven s'il doit (ou pas) mettre à jour les plugins à partir des dépôts distants :
Elimine la recherche de mises à jour pour tous les plugins enregistrés. L'utilisation de cette option
aura pour effet de fixer Maven sur les versions des plugins disponibles dans le dépôt local. Avec l'option
-npu, Maven n'ira pas consulter les dépôts distants à la recherche de mises à
jour.
Force la recherche de mises à jour pour les plugins enregistrés. Force Maven à vérifier l'existence de nouvelle version stable d'un plugin Maven. Faites attention au fait que cela n'affectera pas vos builds si vous spécifiez explicitement les versions des plugins Maven dans le POM de votre projet.
Synonyme de cpu.
Les options suivantes modifient la manière dont Maven télécharge les plugins depuis un dépôt distant :
Ne pas utiliser le fichier ~/.m2/plugin-registry.xml pour les versions de plugin.
Lorsqu'elle est utilisée, l'option -npr demande à Maven de ne pas consulter le Registre de plugins. Pour plus de détails sur le Registre de plugins, consultez la page : http://maven.apache.org/guides/introduction/introduction-to-plugin-registry.html.
Parfois vous voudrez exécuter Maven sans qu'il descende dans tous les sous-modules d'un projet. Vous pouvez obtenir cela grâce à l'option suivante :
Empêche Maven de construire les sous-modules. Ne construit que le projet contenu dans le répertoire courant.
Avec cette option Maven exécutera un goal ou une étape du cycle de vie du projet dans le répertoire courant. Maven n'essayera pas de construire tous les projets d'un build multimodule quand vous utilisez l'option -N.