如何配置SpotBugs maven插件以创建完整报告但仅检查高阈值?

时间:2018-06-12 18:11:02

标签: maven spotbugs

我有一个遗留maven项目,并希望集成 FindBugs 后继 SpotBugs 来创建所有问题的报告,但如果高仅限优先问题(暂时)。

只有在未能在特定阈值上失败时,才能轻松创建报告。但是,当指定阈值时,所有问题都会从报告中删除。

我已尝试根据documentation配置插件,但没有成功:

<plugin>
  <groupId>com.github.spotbugs</groupId>
  <artifactId>spotbugs-maven-plugin</artifactId>
  <version>3.1.3</version>
  <configuration>
    <effort>Max</effort>
    <threshold>High</threshold>
    <xmlOutput>true</xmlOutput>
    <spotbugsXmlOutputDirectory>${project.build.directory}/spotbugs-reports</spotbugsXmlOutputDirectory>
    <xmlOutputDirectory>${project.build.directory}/spotbugs-reports</xmlOutputDirectory>
    </configuration>
    <executions>
      <execution>
        <goals>
          <goal>check</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

我正在使用Maven 3和SpotBugs 3.1.3。

1 个答案:

答案 0 :(得分:0)

不确定是否有帮助,主要是一种解决方法。

我有一个类似的案例,我所做的是将配置放置在“ reporting”标签(不是reportSets)中。在“ build”标签中,我只是添加了插件信息和依赖项。该配置使用输出xml和输出文件夹的默认值。我还添加了过滤掉一些错误的文件:

<build>
        <plugins>
            <plugin>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-maven-plugin</artifactId>
                <version>3.1.10</version>
                <dependencies>
                    <dependency>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs</artifactId>
                        <version>3.1.11</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <plugins>
            <plugin>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-maven-plugin</artifactId>
                <version>3.1.10</version>
                <configuration>
                    <excludeFilterFile>spotbugs_filter.xml</excludeFilterFile>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

然后我做了一个

mvn clean install site spotbugs:check

这给了我

  • build_directory中的spotbugsXml.xml文件,其中包含找到的所有错误(未应用过滤器)。
  • 在目标/站点中生成了一个报告Spotbugs.html,其中包含经过过滤的错误列表。

因此,要将此问题与您的问题联系起来,我想您可以使用这些“步骤”来获得两个报告,一个包含阈值,另一个不包含阈值。

这有意义吗?