maven-2 - 何时在 Maven 中使用 MojoExecutionException 与 MojoFailureException

标签 maven-2 maven-plugin

AbstractMavenMojo 的执行方法声明它抛出两个异常: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

关于maven-2 - 何时在 Maven 中使用 MojoExecutionException 与 MojoFailureException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1033154/

相关文章:

xml - maven 和 xml 解析的 Hibernate 依赖问题

java - Maven 2 - 包 org.junit 不存在

java - 开发环境 Java 6、Maven 2.x、Eclipse 3.4.x、JBoss 5 和 JBoss Seam

java - 使用 mule-domain-maven-plugin 发布时双重上传

java - 如果没有任何变化,配置 Maven 不运行测试

Maven 构建仅生成更改的 Artifact

eclipse - Eclipse 的 Maven2 WTP 版本

maven-2 - Sonar maven插件无法下载JDBC驱动程序

java - 如何基于Maven实现一个自动更新的Java应用程序?

maven - JavaFX + Maven + javafx-maven-plugin : Entry[import from realm ClassRealm[maven. api, parent: null]]