Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide
Consultez :
  • Les documents de reference sur le projet original
  • Les sources de la traduction fr sur GitHub
  • maven


    Chapitre 12. Exécuter Maven

    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.

    12.1. Options de ligne de commande Maven

    La section qui va suivre donne, en détail, les différentes options en ligne de commande pour Maven.

    12.1.1. Définition de propriété

    Pour définir une propriété, vous devez utiliser l'option suivante sur la ligne de commande :

    -D, --define <arg>

    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 15, 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 11, Profils de Build.

    12.1.2. Obtenir de l'aide

    Pour obtenir la liste des différents paramètres de la ligne de commande, utilisez l'option de ligne de commande suivante :

    -h, --help

    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 12.3, « Usage du plugin Maven Help ».

    12.1.3. Utilisation de profils de build

    Pour activer un ou plusieurs profils depuis la ligne de commande, il vous faut utiliser l'option suivante :

    -P, --activate-profiles <arg>

    Liste de profils à activer séparés par des virgules

    Pour plus d'informations sur les profils de build, rendez-vous au Chapitre 11, Profils de Build.

    12.1.4. Afficher les informations relatives à la version

    Pour afficher les informations sur la version de Maven, voici l'option à utiliser :

    -V, --show-version

    Affiche la version SANS arrêter le build en cours

    -v, --version

    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 12.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"
    

    12.1.5. Travailler en mode déconnecté

    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 :

    -o, --offline

    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.

    12.1.6. Utiliser le POM et le fichier settings de votre choix

    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 :

    -f, --file <file>

    Force l'utilisation d'un fichier POM alternatif

    -s,--settings <arg>

    Chemin alternatif vers votre fichier de configuration personnel

    -gs, --global-settings <file>

    Chemin alternatif vers le fichier de configuration global

    12.1.7. Chiffrer les mots de passe

    Les commandes Maven suivantes vous permettent de chiffrer les mots de passe enregistrés dans vos fichiers de préférences Maven :

    -emp, --encrypt-master-password <password>

    Chiffre le mot de passe principal

    -ep, --encrypt-password <password>

    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 ».

    12.1.8. Gestion des erreurs

    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 :

    -fae, --fail-at-end

    Le build n'échoue qu'à la fin ; tous les modules non-impactés sont construits

    -ff, --fail-fast

    Arrêt au premier échec dans les builds

    -fn, --fail-never

    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.

    12.1.9. Contrôle de la verbosité de Maven

    Si vous voulez contrôler le niveau de trace de Maven, vous pouvez utiliser une de ces trois options de ligne de commande :

    -e, --errors

    Affiche les messages d'erreur lors de l'exécution

    -X, --debug

    Affiche les traces en mode debug

    -q, --quiet

    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.

    12.1.10. Exécution de Maven en mode batch

    Pour exécuter Maven en mode batch, utilisez l'option suivante :

    -B, --batch-mode

    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.

    12.1.11. Téléchargement et vérification des dépendances

    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 :

    -C, --strict-checksums

    Fait échouer le build si les checksums ne correspondent pas

    -c, --lax-checksums

    Affiche une alerte si les checksums ne correspondent pas

    -U, --update-snapshots

    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.

    12.1.12. Contrôle de la mise à jour des plugins

    Les options de ligne de commande suivantes indiquent à Maven s'il doit (ou pas) mettre à jour les plugins à partir des dépôts distants :

    -npu, --no-plugin-updates

    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.

    -cpu, --check-plugin-updates

    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.

    -up, --update-plugins

    Synonyme de cpu.

    Les options suivantes modifient la manière dont Maven télécharge les plugins depuis un dépôt distant :

    -npr, --no-plugin-registry

    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.

    12.1.13. Builds non-récursifs

    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 :

    -N, --non-recursive

    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.