问题
Maven version: 3.3.3. Findbugs plugin version: 3.0.1
I'm using the
findbugs-maven-plugin
and I need to run findbugs plugin on src and test classes. Currently, it is only applied to the source classesTarget |_ classes |_ test-classes |_ findbugs (only have results regarding classes folder)
I need to do the same for the PMD plugin. Same hint maybe?
Related issues:
- FindBugs filter file for ignoring JUnit tests
- How to run findbug on the test code
Findbugs maven configuration:
<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:
In the configuration of the findbugs-maven-plugin
, you need to explicitely set the includeTests element to true
for FindBugs to analyze the test classes:
<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>
Also, the plugin should be bound to the verify
phase so that FindBugs is executed after compilation of source and test classes.
For the maven-pmd-plugin
, it is actually the same: the element includeTests must be set to true
in the plugin configuration.
来源:https://stackoverflow.com/questions/33234692/maven-findbugs-plugin-how-to-run-findbug-on-the-test-classes