我已经集成了 FindBugs 插件,以便在出现错误时使构建失败。
然后使用 brilliant answer我将 FindBugs 配置为生成 html 报告(xml 版本几乎不可读)。
问题是我将 failOnError
属性设置为 true
,这意味着如果出现错误,构建将失败。
.....
<configuration>
.....
<failOnError>true</failOnError>
</configuration>
然后不会生成html报告。
我读到了 Maven build lifecycle并且没有“失败时执行”之类的东西(就像 Java 中的 finally
block )。那么,是否有任何可能的解决方法?
它不应该是开箱即用的 Maven 功能吗?
最佳答案
特别感谢 @SpaceTrucker 提供解决方法 suggestion . 这是我最终得到的配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.4</version>
<configuration>
<effort>Max</effort>
<threshold>Low</threshold>
<findbugsXmlOutputDirectory>${project.build.directory}/findbugs</findbugsXmlOutputDirectory>
</configuration>
<executions>
<execution>
<id>noFailOnError</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<failOnError>false</failOnError>
</configuration>
</execution>
<execution>
<id>failOnError</id>
<phase>install</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<failOnError>true</failOnError>
</configuration>
</execution>
</executions>
</plugin>
解决方案是在verify
和install
阶段使用不同的配置。
请注意,根据 that answer转换(到 html)在 verify
阶段执行。
问题是 submitted用于生成 html 报告。
运行mvn findbugs:gui
也可以看到结果
关于Maven 在构建失败/FindBugs 时执行目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38632682/