⚠️ 此项目的分支维护在 https://github.com/GradleUp/static-analysis-plugin/ 请迁移至使用
com.gradleup.static-analysis插件 ID。
一个 Gradle 插件,用于轻松地将相同的静态分析工具配置应用于不同的 Android、Java 或 Kotlin 项目。
支持任务配置避免,因此使用此插件时构建速度零开销!
Gradle 通过一系列内置插件支持许多流行的静态分析工具(Checkstyle、PMD、FindBugs 等)。 在 Android 模块中使用这些插件需要进行额外设置,以弥补 Android 插件采用的模型与 Java 插件之间的差异。
gradle-static-analysis-plugin 旨在提供:
该插件支持多种用于 Java、Kotlin 和 Android 项目的静态分析工具:
CheckstylePMDFindBugs [已弃用] [在 Gradle 6.0 中移除]SpotBugsDetektAndroid LintKtLint请注意,工具的可用性取决于应用插件所在的项目。更多详情请参阅 支持的工具页面。
所有考虑中的工具,请参阅问题。
Android 项目使用的 Gradle 模型与 Java 项目不兼容,而内置的静态分析工具插件支持的是 Java 模型。
将 gradle-static-analysis-plugin 应用于你的 Android 项目将确保创建所有必要任务并正确配置,无需任何额外麻烦。
将插件从 jCenter 作为类路径依赖项应用
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.novoda:gradle-static-analysis-plugin:1.2'
}
}
apply plugin: 'com.novoda.static-analysis'
或者从 Gradle 插件仓库 添加:
plugins {
id 'com.novoda.static-analysis' version '1.2'
}
该插件的典型配置如下:
staticAnalysis {
penalty {
maxErrors = 0
maxWarnings = 0
}
checkstyle { }
pmd { }
findbugs { }
spotbugs { }
detekt { }
lintOptions { }
}
这将启用所有工具及其默认设置,并创建 evaluateViolations 任务。运行 ./gradlew evaluateViolations 任务将运行所有配置的工具并将报告输出到控制台。有关更高级的配置,请参阅
高级用法 和 支持的工具 页面。
有两个可用的 Android 示例项目,一个包含常规应用 - 可在此处获取 - 另一个包含多模块设置,可在此处获取。两个示例项目都展示了包含 Checkstyle、FindBugs、SpotBugs、PMD、Lint、Ktlint 和 Detekt 的配置。
来自 develop 分支的 Snapshot 版本会自动部署到未与 JCenter 同步的仓库。
要使用 snapshot 版本,请添加额外的 maven 仓库如下:
repositories {
maven {
url 'https://dl.bintray.com/novoda-oss/snapshots/'
}
}
你可以通过此链接找到最新的 snapshot 版本。
此项目被许多 Novoda 项目以及其他外部项目广泛使用,没有已知的严重问题。
未来的改进和新工具集成可以在仓库的 问题跟踪器 中找到。