目录

* checkstyle <https://www.cnblogs.com/littleatp/p/9216390.html#checkstyle>
* findbugs <https://www.cnblogs.com/littleatp/p/9216390.html#findbugs>
* pmd <https://www.cnblogs.com/littleatp/p/9216390.html#pmd>
* 其他 <https://www.cnblogs.com/littleatp/p/9216390.html#其他>
checkstyle

checkstyle 用于对代码风格进行检查
checkstyle-maven插件
<https://maven.apache.org/plugins/maven-checkstyle-plugin/checkstyle-mojo.html>
操作示例
mvn clean compile checkstyle:checkstyle
输出(target/site/checkstyle.html)
Summary Files Info Warnings Errors 24 0 15 0 Files File I W E
org/foo/base/mongoop/core/CommandAnalysisListener.java 0 2 0
org/foo/base/mongoop/core/op/CommandOp.java 0 8 0
org/foo/base/mongoop/report/OpResult.java 0 4 0
org/foo/base/mongoop/support/HttpApiClient.java 0 1 0
根据结果页面的提示,可对checkstyle异常进行修复。
如果希望对checkstyle进行定制,可通过配置文件定制规则。
如下命令:
mvn clean compile checkstyle:checkstyle
-Dcheckstyle.config.location=checkStyleConfig.xml
通过-Dcheckstyle.config.location制定checkStyleConfig.xml作为规则配置文件。
以下示例展示了如何屏蔽代码扫描:

* checkStyleConfig.xml添加suppression模块: <module name="SuppressionFilter">
<property name="file" value="checkStyleSuppression.xml"/> </module>
* checkStyleSuppression.xml配置: <?xml version="1.0"?> <!DOCTYPE suppressions
PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> <suppressions> <suppress
checks="."
files="org[\\/]eclipse1[\\/]californium[\\/]scandium[\\/].*\.java$"/>
</suppressions>
此外,还可以通过pom文件指定配置:
<plugin> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId> <version>2.17</version>
<configuration> <configLocation>checkStyleConfig.xml</configLocation>
<suppressionsLocation>checkStyleSuppressions.xml</suppressionsLocation>
</configuration> </plugin>
参考文档
checkstyle的配置说明 <http://checkstyle.sourceforge.net/config.html>
checkstyle配置解析
<https://happilyblogging.wordpress.com/2013/02/24/checkstyle-configuration-file-explained/>

findbugs

findbugs 项目存在已久,主要用于自动化扫描并提前分析判断代码中可能存在的问题,该项目包含一个gui界面。

findbugs-maven插件
<http://gleclaire.github.io/findbugs-maven-plugin/findbugs-mojo.html>
执行如下命令:
mvn clean compile findbugs:findbugs
扫描后会生成target/findbugsXml.xml,该文件记录了扫描后的所有异常。
由于xml文件可读性不高,我们可以借助gui工具完成分析:
clean compile findbugs:findbugs findbugs:findbugsgui
以上命令在执行扫描后会自动打开一个findbugsgui工具,并展现异常结果。
如果希望屏蔽某类代码的检查,可执行:
clean compile findbugs:findbugs
-Dfindbugs.excludeFilterFile=findBugsExcludeFilter.xml
findBugsExcludeFilter.xml配置:
<Match> <Package name="~org[.]eclipse[.]californium[.]scandium([.].*)?"/>
</Match>
~开头表示采用正则表达式

pmd

pmd可按照一组最佳实践规则对代码进行扫描,并输出针对项目代码中的多个改进建议。

pmd-maven插件 <https://maven.apache.org/plugins/maven-pmd-plugin/>
执行如下命令:
mvn clean compile pmd:pmd
扫描后会生成target/site/pmd.html,该文件记录了所有异常。
Files org/foo/base/mongoop/support/ApplicationContextSupport.java Violation
Priority Line Avoid modifiers which are implied by the context 3 93–95 Avoid
modifiers which are implied by the context 3 94
根据结果页面的提示,对pmd扫描结果进行修复。
默认情况下pmd使用内置的5个ruleset规则进行扫描,可以在pom.xml中定制规则:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId> <configuration> <rulesets>
<ruleset>/rulesets/java-basic.xml</ruleset>
<ruleset>/rulesets/java-imports.xml</ruleset>
<ruleset>/rulesets/java-unusedcode.xml</ruleset> </rulesets> <excludes>
<exclude>**org/eclipse/californium/scandium/**</exclude> </excludes>
</configuration> </plugin> </plugins> </build>
多模块中的配置
<https://maven.apache.org/plugins/maven-pmd-plugin/examples/multi-module-config.html>

其他

在每次构建时全部执行检查,可串联运行
mvn clean compile checkstyle:checkstyle pmd:pmd findbugs:findbugs findbugs:gui

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信