用于多项目设置的Spotbugs配置

时间:2019-02-08 02:41:02

标签: java gradle spotbugs

我有一个像这样的多项目gradle设置:

RootProject
    |
    ---- ProjectA
    |
    ---- ProjectB
    |
    ---- ProjectC

我想将SpotBugs应用于我的所有项目。

在每个项目中明确执行以下操作。

例如,build.gradle的{​​{1}}中的以下内容:

ProjectA

但是,我不想在所有项目的plugins { id 'com.github.spotbugs' version '1.6.9' } spotbugs { ignoreFailures = true effort = 'min' showProgress = true reportLevel = 'medium' // Only run spotbugs directly as too slow to run as CI. // Will still run spotbugs when called like "gradlew spotbugsMain" sourceSets = [] } tasks.withType(com.github.spotbugs.SpotBugsTask) { reports { xml.enabled = false html.enabled = true } } 文件中重复此代码。

如何将其提取到build.gradle的构建文件中。

示例,在下面的代码块中:

RootProject

按原样移动块不起作用。

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式在根项目的build.gradle中配置Spotbug:

buildscript {
    repositories {
        maven { url 'maven repository url' }
    }

    dependencies {
        classpath group: 'gradle.plugin.com.github.spotbugs', name: 'spotbugs-gradle-plugin', version: '1.6.5'
    }
}

allprojects {

    apply plugin: 'com.github.spotbugs'

    dependencies {
        compileOnly group: 'com.github.spotbugs', name: 'spotbugs-annotations', version: '3.1.8'
        spotbugsPlugins group: 'com.h3xstream.findsecbugs', name: 'findsecbugs-plugin', version: '1.8.0'
    }

    spotbugs {
        toolVersion = '3.1.8'
        sourceSets = [ sourceSets.main ]
    }

}