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


    17.4.6. Lorsque un Mojo échoue

    La méthode execute() d'un Mojo lance deux types d'exceptions : MojoExecutionException et MojoFailureException. La différence entre ces deux exceptions est aussi subtile qu'importante, ces exception ont un impact sur ce qui arrive lorsqu'une exécution "échoue". Une MojoExecutionException se doit d'être fatale, quelque chose d'irrécupérable est arrivé. Lancez cette exception lorsque quelque chose arrive et que vous souhaitez arrêter le build. Par exemple, vous essayez d'écrire sur le disque qui n'a plus d'espace libre ou que vous essayez de vous connecter à un dépôt distant qui ne répond pas. Lancez donc MojoExecutionException si vous n'avez aucune chance que votre build puisse continuer correctement, lorsque quelque chose d'horrible est arrivé et que vous voulez arrêter le build et afficher à l'utilisateur un message "BUILD ERROR".

    L'exception MojoFailureException correspond à un événement moins catastrophique, quelque chose qui ne doit pas déclencher la fin du build. Un test unitaire peut échouer, un checksum MD5 peut échouer, ces deux exemples sont des problèmes, mais pas assez important pour arrêter votre build. C'est dans ce type situation que vous devez utiliser MojoFailureException. Maven prévoit plusieurs comportements différents lorsqu'un projet échoue. En voici les descriptions.

    Lorsque vous lancez un build Maven, vous pouvez invoquer une série de projets qui peuvent chacun soit réussir soit échouer. Vous pouvez démarrer Maven sous trois modes différents :

    mvn -ff

    Mode fail-fast : Maven échoue (s'arrête) au premier échec.

    mvn -fae

    Mode Fail-at-end : dans ce mode, Maven échouera à la fin du build. Si un projet du reactor de Maven échoue, Maven continuera l'exécution de son build et n'affichera l'échec qu'en fin de build.

    mvn -fn

    Mode Fail never : Maven ne s'arrête pas en cas d'échec et ne reportera pas d'erreur.

    Vous pourrez vouloir ignorer les erreurs si vous exécutez un build d'intégration continue et que vous voulez le poursuivre même lorsque le build de l'un des projets échoue. En tant que développeur de plugin, vous devez prendre soin de lancer la bonne exception MojoExecutionException ou MojoFailureExeception en fonction de votre type d'erreur.