Osheep

时光不回头,当下最重要。

在Gradle中使用阿里巴巴Java开发规约插件进行代码检查

在Gradle中使用阿里巴巴Java开发规约插件进行代码检查

概述

最近阿里发布了《阿里巴巴Java开发手册》,一时间无数阿里拥趸如获武穆遗书,就在近日阿里又顺便发布了<阿里巴巴java开发规约插件>,可以轻松的在码字阶段获得相应的编码提示,那么,在Gradle中如何应用阿里开发规约进行代码检查呢.且看下文.
  阿里的开发规约插件是基于PMD进行的代码检测,所以在Gradle应用阿里开发规约检查只需要使用gradle提供的pmd插件即可达成目的.
  目前阿里开发规约提供了如下一些规则配置,要应用这些配置只需要将他们配置到pmd的检查规则中即可.

  • ali-comment.xml
  • ali-concurrent.xml
  • ali-constant.xml
  • ali-exception.xml
  • ali-flowcontrol.xml
  • ali-naming.xml
  • ali-oop.xml
  • ali-orm.xml
  • ali-other.xml
  • ali-set.xml

PMD介绍
  PMD(Project Manager Design)是一种开源分析Java代码错误的工具。与其他分析工具不同的是,PMD通过静态分析获知代码错误。也就是说,在不运行Java程序的情况下报告错误。PMD附带了许多可以直接使用的规则,利用这些规则可以找出Java源程序的许多问题。此外,用户还可以自己定义规则,检查Java代码是否符合某些特定的编码规范。
  PMD的核心是JavaCC解析器生成器。PMD结合运用JavaCC和EBNF(扩展巴科斯-诺尔范式,Extended Backus-Naur Formal)语法,再加上JJTree,把Java源代码解析成抽象语法树(AST,Abstract Syntax Tree)。

以上内容引自百度百科-PMD条目

使用

apply plugin: 'java'
// 应用pmd插件
apply plugin: 'pmd'

pmd {
    // 控制台打印检查结果
    consoleOutput = true
    // 应用的检查规则
    ruleSets = [
        "java-ali-comment"
    ]
}

repositories {
   jcenter()
}

dependencies {
    // 阿里规约依赖
    pmd 'com.alibaba.p3c:p3c-pmd:1.3.0'
}

这里有几个需要注意的点

  • gradle的pmd插件为rule都添加了默认的java-前缀,一定不要丢掉
  • dependencies中依赖的范围是pmd,这样依赖才会加到pmdClasspath中为pmd所用
  • 关于本插件的一些其它配置可以查看 pmd插件dsl手册
点赞