maven-代码风格检查工具
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>
参考文档
checkstyle的配置说明
checkstyle配置解析
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
maven-代码风格检查工具的更多相关文章
- python代码风格检查工具──pylint
pylint是一个python代码检查工具,可以帮助python程序员方便地检查程序代码的语法和风格,通过这个工具,可以使你的python代码尽量保持完美,哈哈.具体可以检查什么东西呢?比如你写了 f ...
- 痞子衡嵌入式:恩智浦SDK驱动代码风格检查工具预览版
大家好,我是痞子衡,是正经搞技术的痞子. 接上文 <恩智浦SDK驱动代码风格.模板.检查工具> 继续聊,是的,过去的三天里我花了一些时间做了一个基于 PyQt5 的 GUI 工具,可以帮助 ...
- Visual Studio Code 使用 ESLint 增强代码风格检查
前言 在团队协作开发中,为了统一代码风格,避免一些低级错误,应该设有团队成员统一遵守的编码规范.很多语言都提供了Lint工具来实现这样的功能,JavaScript也有类似的工具:ESLint.除了可以 ...
- [技术博客]使用pylint实现django项目的代码风格检查
使用pylint实现django项目的代码风格检查 前言 一个项目大多都是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码的风格必定会有很大的差别.且不说会存在多个人同时开发同一模块的情 ...
- linux 创建svn版本库,并在svn上配置checkstyle做代码风格检查
一.创建SVN版本库 1.安装svn服务器 yum install subversion 2.查看版本 svnserve --version 3.建立SVN版本库目录(即你的SVN服务器里面的文件存放 ...
- 代码风格统一工具:EditorConfig 和 静态代码检查工具:ESLint
EditorConfig 最常见的用途是:统一文件的编码字符集以及缩进风格 使用 Eslint 做代码 lint,那么为什么还要使用 .editorconfig 呢?细细想了下,应该有两个方面吧. E ...
- 四种java代码静态检查工具
[转载]常用 Java 静态代码分析工具的分析与比较 转载自 开源中国社区 http://www.oschina.net/question/129540_23043 1月16日厦门 OSC ...
- 玩转Eclipse — 自动代码规范检查工具Checkstyle
大项目都需要小组中的多人共同完成,但是每个人都有自己的编码习惯,甚至很多都是不正确的.那么如何使小组所有开发人员都遵循某些编码规范,以保证项目代码风格的一致性呢?如果硬性地要求每个开发人员在提交代码之 ...
- SwiftLint:代码规范检查工具介绍
Swift-CodeStyle Checker:SwiftLint 介绍: SwiftLint 是一个用于强制检查 Swift 代码风格和规定的一个工具,基本上以 GitHub's Swift 代码风 ...
随机推荐
- hrbust 2384 相同的不相同的字符串
Description 研究证明,汉的字阅读序顺是不会影响你明白这句话的意思的. 但是如果顺序差的太多也是会影响的,比如汉阅读顺的序字你就看不懂什么意思了. 那么多少算多呢?科学家芦苇给出证明,当两个 ...
- tensorflow 使用 2 Felch ,Feed
Felch ::在会话里可以执行多个 op , import tensorflow as tf input1 = tf.constant(3.0) input2 = tf.constant(2.0) ...
- 我的 FPGA 学习历程(08)—— 实验:点亮单个数码管
数码管是一种常见的用于显示的电子器件,根据数码管大致可以分为共阴极和共阳极两种,下图所示的是一个共阳极的数码管的电路图(摘自金沙滩工作室的 51 开发板电路图),我的 AX301 开发板与这张图的情况 ...
- AppImage格式安装包使用
AppImage(以及前身klik和portablelinuxapps)不会安装传统意义上的软件(即它不会将文件放在系统中的所有位置). 它每个应用程序使用一个文件.每个都是自包含的:它包括应用程序所 ...
- vuex的一些学习
刚开始学vuex看文档看的一脸懵逼,故而网上各种查找资料,视频去观看学习,虽然看了很多还是很蒙圈,最近看了一个讲vuex的视频还有一个 类似的简书文档从中学到了很多,慢慢理清了头绪,至此记录一下,共同 ...
- 【腾讯海纳】系统未发布时如何获取获取property_id在本地进行测试?
有现成https协议域名使用者,可忽略此文. 直接先上图,明白的人看一眼图片就知道怎么拿了,如下所示: 解释说明: 在完成添加套件,以及测试应用的前提下,按如下操作流程: 1.访问路径:登录“海纳开发 ...
- oracle启动服务和监听
1.故障问题:tomcat显示启动oracle数据库失败,数据库服务启动正常 操作1:重启tomcat查看错误信息 2:重启数据库服务 命令: (1) 启动Oracle服务 C:\Users\Admi ...
- Java后期拓展(一)之Redis
1.NoSQL数据库简介 2.Redis的介绍及安装启动 3.Redis的五大数据类型 4.Redis的相关配置 5.Redis的Java客户端Jedis 6.Redis的事务 7.Redis的持久化 ...
- VUE插件大总结
UI组件 element - 饿了么出品的Vue2的web UI工具套件 Vux - 基于Vue和WeUI的组件库 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开 ...
- idea之debug
[转载]原文地址:https://www.cnblogs.com/nihaorz/p/7613967.html 在Intellij IDEA中使用Debug Debug用来追踪代码的运行流程,通常在程 ...