2016-07-28 85 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

相關問題