静态代码分析围绕CheckStyle,Spotbugs,PMD和CPD,为封装插件提供新功能和扩展,使使用它们更易于使用它们,并以最小的努力为您提供更好的结果。
开箱即用,只需应用您获得的插件:
R.class和BuildConfig.class )我们在等级插件门户网站上,因此您可以简单地做:
plugins {
id ' com.monits.staticCodeAnalysis ' version ' 3.1.1 '
}或者,您也可以做
buildscript {
repositories {
maven {
url ' https://plugins.gradle.org/m2/ '
}
}
dependencies {
classpath ' com.monits:static-code-analysis-plugin:3.1.1 '
}
}
apply plugin : ' com.monits.staticCodeAnalysis '或者,直接来自Jcenter
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ' com.monits:static-code-analysis-plugin:3.1.1 '
}
}
apply plugin : ' com.monits.staticCodeAnalysis ' | 插件版本 | Gradle版本 | Android Gradle插件版本 |
|---|---|---|
| 3.x | 5.6+ | 3.3.0+ |
| 2.6.12 | 2.3最多5.6.x | 1.1.x最高3.5.x |
在使用3.0.0版本之前,FindBugs被代替Spotbugs。
由于其DSL,配置静态代码分析非常简单和直观。您可以选择要运行的封装插件并设置其配置文件。这是一个快速示例
staticCodeAnalysis {
spotbugs = true
checkstyle = true
pmd = true
cpd = true
androidLint = true
ignoreErrors = true
// default rules
spotbugsExclude = " $p roject . rootProject . projectDir /config/spotbugs/excludeFilter.xml "
checkstyleRules = ' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/checkstyle/checkstyle-cache.xml '
pmdRules = [ ' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/pmd/pmd.xml ' ,
' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/pmd/pmd-android.xml ' ]
androidLintConfig = ' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/android/android-lint.xml '
sourceSetConfig {
test { // or the name of any other sourceset
// use a more relaxed ruleset
checkstyleRules = ' config/checkstyle/test-checkstyle.xml '
spotbugsExclude = ' config/spotbugs/test-spotbugs.xml '
pmdRules = [ ' config/pmd/test-pmd.xml ' ,
' https://raw.githubusercontent.com/Monits/static-code-analysis-plugin/staging/defaults/pmd/pmd-android.xml ' ]
}
}
}默认情况下,应用了所有插件,错误不会使构建失败,并且将从此存储库的最新默认值中获取规则和排除
在使用3.0.0版本之前,FindBugs被代替Spotbugs。如果使用旧版本,则DSL是等效的,但使用findbugs代替点spotbugs ,用于所有属性。
所有v2.x FindBugs DSL属性都会自动映射到v3.x中的斑点,以更轻松地升级
PMD,Spotbugs和CheckStyle使用的规则可以在sourceSetConfig块下覆盖。
要包含自定义棉绒规则,您可以简单地将罐子作为androidLint依赖性。例如,您可以通过添加:
dependencies {
androidLint ' com.monits:android-linters:1.+ '
}该插件将添加以下任务:
cpdcheckstyle ,取决于:checkstyleSourcesetname任务( checkstyleMain , checkstyleTest ,等等)。spotbugs ,取决于:spotbugsSourcesetname任务( spotbugsMain , spotbugsTest等)。pmd ,取决于:pmdSourcesetname任务( pmdMain , pmdTest ,等等)。在使用3.0.0版本之前,FindBugs被代替Spotbugs。旧的findbugs*任务仍然可用,并映射到相应的spotbugs*任务
所有任务都挂钩以作为Java插件的check任务的一部分运行。
一如既往,可以随意以任何形式或形式做出贡献,我们期待您的反馈!
如果您看到正在报告的事情,您认为应该不应该是两件事之一:
由于每个工具都有自己的抑制机制,因此您应该参考其文档:
@SupressFBWarnings Javadoc版权2010-2017 MONITS SA
根据Apache许可证(版本2.0(“许可”)获得许可;除了符合许可外,您不得使用此工作。您可以在以下方式获得许可证的副本:
http://www.apache.org/licenses/license-2.0