Maven Findbugs 插件 - 如何在测试类上运行 findbug
Posted
技术标签:
【中文标题】Maven Findbugs 插件 - 如何在测试类上运行 findbug【英文标题】:Maven Findbugs plugin - How to run findbug on the test classes 【发布时间】:2016-01-18 23:55:37 【问题描述】:Maven 版本:3.3.3。 Findbugs 插件版本:3.0.1
我正在使用findbugs-maven-plugin
,我需要运行 findbugs
src 和测试类的插件。目前仅适用于源类
Target
|_ classes
|_ test-classes
|_ findbugs (only have results regarding classes folder)
我需要为 PMD 插件做同样的事情。可能是同样的提示?
相关问题:
FindBugs filter file for ignoring JUnit tests How to run findbug on the test codeFindbugs maven 配置:
<profile>
<id>findbugs</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>$findbugs.version</version>
<configuration>
<effort>Max</effort>
<failOnError>true</failOnError>
<threshold>Low</threshold>
<xmlOutput>true</xmlOutput>
<includeTests>true</includeTests>
<excludeFilterFile>findbugs-exclude.xml</excludeFilterFile>
</configuration>
<executions>
<execution>
<id>analyze-compile</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
<goal>findbugs</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
【问题讨论】:
【参考方案1】:在findbugs-maven-plugin
的配置中,您需要将includeTests
元素显式设置为true
,以便FindBugs分析测试类:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<!-- rest of configuration -->
<includeTests>true</includeTests>
</configuration>
</plugin>
此外,插件应该绑定到verify
阶段,以便在编译源和测试类之后执行 FindBugs。
对于maven-pmd-plugin
,其实是一样的:必须在插件配置中将元素includeTests
设置为true
。
【讨论】:
非常感谢,但我们现在有 135 个错误(在测试中),而不是 0 个错误(在 src 中)。以上是关于Maven Findbugs 插件 - 如何在测试类上运行 findbug的主要内容,如果未能解决你的问题,请参考以下文章
Maven Codehaus findbugs 插件“onlyAnalyze”选项未按预期工作
SonarQube 9.0 - FindBugs/SpotBugs 插件?