何时在Maven中使用MojoExecutionException vs MojoFailureException

AbstractMavenMojo的execute方法声明它抛出了两个exception,MojoExecutionException和MojoFailureException。 投掷或者导致构build停止,并且日志在每种情况下显示几乎相同的消息。

MojoExecutionException的消息是:

[INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] [exception text] [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ 

并且MojoFailureException的消息是:

 [INFO] ------------------------------------------------------------------------ [ERROR] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] [exception text] [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ 

什么时候应该抛出哪个exception,为什么?

看起来你应该抛出一个MojoExecutionException如果这个问题使得不可能继续构build,否则使用MojoFailureException

当maven运行时,你可以控制处理MojoFailureExpections的行为。

以下链接详细区别: https : //books.sonatype.com/mvnref-book/reference/writing-plugins-sect-custom-plugin.html#writing-plugins-sect-failure
断开的链接? 谷歌searchsonatype写插件,部分定制插件写插件部分失败