2016-07-28 115 views
3

我已经集成了FindBugs插件,以便在出现错误时构建失败。
然后使用brilliant answer我配置了FindBugs来生成html报告(xml版本几乎不可读)。
问题是我的failOnError属性设置为true,这意味着如果出现错误,构建将失败。Maven在构建失败时执行目标/ FindBugs

..... 
<configuration> 
     ..... 
     <failOnError>true</failOnError> 
</configuration> 

然后将不会生成任何html报告。

我阅读了关于Maven build lifecycle,没有“执行失败”(例如Java中的finally块)。那么,有没有可能的解决方法? 不应该是开箱即用的Maven功能吗?

+0

是如果插件发现它失败的错误,这意味着该插件生成HTML报告。所以,如果你喜欢插件生成一个HTML报告独立于失败,你应该在插件的问题文件https://gleclaire.github.io/findbugs-maven-plugin/check-mojo.html – khmarbaise

+0

@khmarbaise我想在这种情况下,请求生成html报告而不是xml报告更容易。无论如何,这听起来像是耗时的解决方案。 – Enigo

+0

如何使用findbugs插件的多次运行?在早期构建阶段运行插件来生成报告。在稍后运行时,将'failOnError'设置为'true'的插件。这会减慢构建的时间,但您可以选择等待更好的解决方案。 – SpaceTrucker

回答

5

特别感谢@SpaceTrucker for workaround 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> 

的解决方案是在verifyinstall阶段使用不同的配置。 请注意,根据that answer转换(到html)在verify阶段执行。

对于html报告生成问题是submitted

结果也可以看出,只需运行mvn findbugs:gui

相关问题