基于Gradle使用阿里巴巴Java开发规约进行代码检查 3ff8
2017-10-19 11:11
1511 查看
阿里的开发规约插件是基于PMD进行的代码检测,而且已经有PMD的Gradle插件。
参考gradle pmd插件的自定义规则的使用这文章后,剩下的问题就是如何把阿里制定的Rule也引进来。
从上面例子可以看出,非常方便定制rule。甚至还可以使用 exclude 标签排队不需要的rule。
通过上面例子可以看出,使用p3c-pmd,其实很简单,只需要把其一些rule 导到ruleSetConfig 文件中即可。
任务名称 ...... 描述
pmdMain ...... 检查src/main/java下的代码
pmdTest ...... 检查src/main/test下的代码
pmdSourceSet ...... 检查给定范围的代码
check ...... 检查源码和单元测试代码
执行下面命令:
会将执行结果输出到 build/reports/pmd目录中的main.html、test.html等文件中。
参考gradle pmd插件的自定义规则的使用这文章后,剩下的问题就是如何把阿里制定的Rule也引进来。
定制RuleSet
新建文件 etc/pmd/ruleset.xml,其内容如下:<?xml version="1.0"?> <ruleset name="Custom ruleset" xmlns="http://pmd.sourceforge.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd"> <description> 自定义Rule set </description> <!-- 引入PMD制定的Rule, 来源于https://github.com/pmd/pmd/tree/master/pmd-java/src/main/resources/rulesets/java --> <rule ref="rulesets/java/android.xml"> <exclude name="CallSuperLast"/> </rule> <rule ref="rulesets/java/basic.xml"> <exclude name="CollapsibleIfStatements"/> </rule> <rule ref="rulesets/java/clone.xml"/> <rule ref="rulesets/java/finalizers.xml"/> <rule ref="rulesets/java/imports.xml"/> <rule ref="rulesets/java/javabeans.xml"/> <rule ref="rulesets/java/optimizations.xml"> <exclude name="LocalVariableCouldBeFinal"/> <exclude name="MethodArgumentCouldBeFinal"/> </rule> <rule ref="rulesets/java/sunsecure.xml"/> <rule ref="rulesets/java/unnecessary.xml"> <exclude name="UselessParentheses"/> </rule> <!-- 引入阿里的Rule, 来源于 https://github.com/alibaba/p3c/tree/master/p3c-pmd/src/main/resources/rulesets/java --> <rule ref="rulesets/java/ali-comment.xml"> </rule> <rule ref="rulesets/java/ali-concurrent.xml"> </rule> <rule ref="rulesets/java/ali-constant.xml"> </rule> <rule ref="rulesets/java/ali-exception.xml"> </rule> <rule ref="rulesets/java/ali-flowcontrol.xml"> </rule> <rule ref="rulesets/java/ali-naming.xml"> </rule> <rule ref="rulesets/java/ali-oop.xml"> </rule> <rule ref="rulesets/java/ali-orm.xml"> </rule> <rule ref="rulesets/java/ali-other.xml"> </rule> <rule ref="rulesets/java/ali-set.xml"> </rule> </ruleset>
从上面例子可以看出,非常方便定制rule。甚至还可以使用 exclude 标签排队不需要的rule。
build.gradle
apply plugin: 'java' apply plugin: 'pmd' ext { p3cPmdVersion = "1.3.0" pmdVersion = '5.5.2' # 与p3c-pmd 中使用pmd的版本一致 } // PMD配置 pmd { toolVersion = pmdVersion // 避免使用比较旧的版本,需要指定pmd的版本 ignoreFailures = true ruleSetConfig = resources.text.fromFile("etc/pmd/ruleset.xml") } dependencies { pmd "com.alibaba.p3c:p3c-pmd:${p3cPmdVersion}" }
通过上面例子可以看出,使用p3c-pmd,其实很简单,只需要把其一些rule 导到ruleSetConfig 文件中即可。
执行检查
PMD插件提供了如下几个任务:任务名称 ...... 描述
pmdMain ...... 检查src/main/java下的代码
pmdTest ...... 检查src/main/test下的代码
pmdSourceSet ...... 检查给定范围的代码
check ...... 检查源码和单元测试代码
执行下面命令:
gradle check
会将执行结果输出到 build/reports/pmd目录中的main.html、test.html等文件中。
相关文章推荐
- 在Gradle中使用阿里巴巴Java开发规约插件进行代码检查
- 【代码规范神器】阿里巴巴Java开发规约IDE插件使用教程(P3C)
- [置顶] 阿里巴巴Java开发规约的插件使用
- 阿里巴巴java开发规约插件使用方法
- 阿里巴巴Java开发规约插件使用
- 阿里巴巴Java开发规约IDEA插件安装及使用
- IDEA阿里巴巴Java开发规约插件使用
- 阿里巴巴Java开发手册及Java代码规约扫描eclipse和IDEA插件
- 阿里巴巴Java开发手册及Java代码规约扫描eclipse插件安装
- 阿里巴巴Java开发规约插件p3c详细教程及使用感受
- 转:Java 开发 2.0: 使用 Amazon SQS 进行基于云计算的消息传送
- 阿里巴巴Java开发规约插件p3c详细教程及使用感受
- 阿里巴巴Java开发规约插件使用
- 阿里巴巴Java开发手册及Java代码规约扫描eclipse和IDEA插件
- 阿里巴巴Java开发规约插件p3c详细教程及使用感受 - 转
- 阿里巴巴Java开发规约的IDEA插件使用
- 阿里巴巴Java开发规约插件使用
- 阿里巴巴Java开发规约的IDEA插件使用
- 阿里巴巴Java开发规约扫描插件-Alibaba Java Coding Guidelines 在idea上安装使用教程
- 阿里巴巴Java开发规约插件使用