AbstractMavenMojo的execute方法声明它引发两个异常,即MojoExecutionException和MojoFailureException。抛出任何一个都会导致构建停止,并且在每种情况下日志都会显示几乎相同的消息。
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] ------------------------------------------------------------------------
什么时候应该抛出哪个异常,为什么?
最佳答案
如果问题导致无法继续进行构建,则似乎应该抛出MojoExecutionException
,否则应使用MojoFailureException
。
您可以控制运行maven时处理MojoFailureExpections
的行为。
以下链接详细说明了区别:https://books.sonatype.com/mvnref-book/reference/writing-plugins-sect-custom-plugin.html#writing-plugins-sect-failure
链接断开?谷歌搜索
sonatype writing-plugins-sect-custom-plugin writing-plugins-sect-failure