FindBugs
是一种静态代码分析工具,可识别从Java代码中发现的问题。
我们可以使用
FindBugs Maven插件
将
FindBugs
集成到我们的构建过程中。 这篇博客文章确定了四个典型的用例,并描述了我们如何配置FindBugs Maven插件以支持每个用例。
描述的用例是:
- 创建FindBugs报告作为项目报告的一部分。
- 如果FindBugs从源代码中发现问题,则构建失败。
- 创建XML报告而不会使构建失败。
- 在不创建站点的情况下创建XML和HTML报告。
让我们开始吧。
用例1:创建Findbugs报告作为项目报告的一部分
有时,我们不想在每次编译项目时都运行静态代码分析。 相反,我们希望在需要时手动运行它。 在这种情况下,最好的选择是在创建项目站点时创建FindBugs报表。
我们可以按照以下步骤进行操作:
-
将FindBugs Maven插件的声明添加到
pom.xml
文件的
报告
部分。 -
通过执行以下步骤配置FindBugs Maven插件:
- 确保执行最准确的分析。
- 确保报告了所有错误。
- 确保已生成XML报告。
pom.xml
文件的相关部分如下所示:
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<!--
Enables analysis which takes more memory but finds more bugs.
If you run out of memory, changes the value of the effort element
to 'low'.
-->
<effort>Max</effort>
<!-- Reports all bugs (other values are medium and max) -->
<threshold>Low</threshold>
<!-- Produces XML report -->
<xmlOutput>true</xmlOutput>
</configuration>
</plugin>
</plugins>
</reporting>
仅在编译项目时才创建
报告。
换句话说,当我们要创建FindBugs报表时,我们必须在命令提示符处运行以下命令:
mvn clean compile site
让我们继续前进,看看如果FindBugs从源代码中发现问题,如何使构建失败。
用例2:如果发现问题,则构建失败
如果我们希望确保我们的代码甚至没有一个小问题,那么在每次编译项目时都运行静态代码分析可能是个好主意。 当然,仅当发现问题时构建失败时&