maven-代码风格检查工具
[TOC]
checkstyle
checkstyle 用于对代码风格进行检查
checkstyle-maven插件
操作示例
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>
findbugs
findbugs 项目存在已久,主要用于自动化扫描并提前分析判断代码中可能存在的问题,该项目包含一个gui界面。
findbugs-maven插件
执行如下命令:
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插件
执行如下命令:
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>
其他
在每次构建时全部执行检查,可串联运行
mvn clean compile checkstyle:checkstyle pmd:pmd findbugs:findbugs findbugs:gui
作者: zale
出处: http://www.cnblogs.com/littleatp/, 如果喜欢我的文章,请关注我的公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文链接 如有问题, 可留言咨询.

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java关键字(五)——this
this 也是Java中的一个关键字,在《Java编程思想》第四版第五章5.4小节对 this 关键字是这样介绍的: this 关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。 其实简单来说 this 关键字就是表示当前对象,下面我们来具体介绍 this 关键字在Java中的用法。 1、调用成员变量 在一个类的方法内部,如果我们想调用其成员变量,不用 this,我们会怎么做? 1 package com.ys.test; 2 3 /** 4 * Create by YSOcean 5 */ 6 public class ThisTest { 7 8 private String name = "Tom"; 9 10 public void setName(String name){ 11 name = name; 12 } 13 14 public String getName() { 15 return name; 16 } 17 18 } 看上面的代码,我们在 ThisTest 类中创建了一个 name 属性,然后创建了一个 setName 方法,注意这个方法的形参也...
- 下一篇
前端开发者常用的9个JavaScript图表库
当前,数据可视化已经成为数据科学领域非常重要的一部分。不同网络系统中产生的数据,都需要经过适当的可视化处理,以便更好的呈现给用户读取和分析。 对任何一个组织来说,如果能够充分的获取数据、可视化数据和分析数据,那么就能很大程度上帮助了解数据产生的深层次原因,以便据此做出正确的决定。 对于前端开发人员来说,如果能够掌握交互式网页中的数据可视化技术,则是一项很棒的技能。当然,通过一些 JavaScript 的图表库也会使前端的数据可视化变得更加容易。使用这些库,开发者可以在无需考虑不同的语法所带来的编程难题的情况下,轻松实现将数据转化为易于理解的图表。 下面是挑选出的9个 JavaScript 图表库: Chart.js Chartist FlexChart Echarts NVD3 C3.js TauCharts ReCharts Flot Chart.js Chart.js 是一种简洁、用户友好的图表库,同时也是基于 HTML5 的 JavaScript 库,用于创建动画、交互式和可自定义的图表和图形。 借助 Chart.js,用户可以轻松直观地查看混合图表类型。默认情况下,也可以使用 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16