代码质量是软件开发质量的一部分,除了人工代码评审之外,在把代码提交到代码库之前,还应该使用自动检查工具来自动检查代码,来保证项目的代码质量。下面介绍一下Gradle提供的支持代码检查的插件 。
3.1 CheckStyle
CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要却枯燥的任务中解脱出来。Gradle官方提供了CheckStyle的插件,在Gradle的构建脚本中只需要应用该插件:
apply plugin: 'checkstyle'
默认情况下,该插件会找/config/checkstyle/checkstyle.xml作为CheckStyle的配置文件,可以在checkstyle插件的配置阶段(Configuration) 设置CheckStyle的配置文件:
checkstyle{ configFile = file('config/checkstyle/checkstyle-main.xml') }
还可以通过checkstyle设置CheckStyle插件的其他配置。
3.2 FindBugs
FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Gradle使用如下的代码为项目的构建脚本添加FindBugs的插件:
apply plugin: 'findbugs'
同样也可以在FindBugs的配置阶段(Configuration)设置其相关的属性,比如Report的输出目录、检查哪些sourceSet等。
3.3 JDepend
在开发Java项目时经常会遇到关于包混乱的问题, JDepend工具可以帮助你在开发过程中随时跟踪每个包的依赖性(引用/被引用),从而设计高维护性的架构,不论是在打包发布还是版本升级都会更加轻松。在构建脚本中加入如下代码即可:
apply plugin: 'jdepend'
3.4 PMD
PMD是一种开源分析Java代码错误的工具。与其他分析工具不同的是,PMD通过静态分析获知代码错误,即在不运行Java程序的情况下报告错误。PMD附带了许多可以直接使用的规则,利用这些规则可以找出Java源程序的许多问题。此外,用户还可以自己定义规则,检查Java代码是否符合某些特定的编码规范。在构建脚本中加入如下代码:
apply plugin: 'pmd'
3.5 小结
上面提到的几种代码检查插件apply到构建脚本之后,可以运行:
gradle check
来执行代码质量检查。更详细的信息请查阅Gradle的官方文档。运行结束后会在对应的项目目录下的build文件夹下生成report。
对于Gradle没有提供的代码检查工具,我们可以有两种选择:第一就是自己实现一个Gradle插件,第二就是调用Ant任务,让Ant作为一个媒介去调用在Ant中已经有的代码检查工具,比如测试覆盖率的Cobertura。我们的项目使用了Ant来调用Cobertura,但是为了使用方便,我们将它封装为一个Gradle插件,这样就可以在不同的项目里重用。