Конфигурация Spotbugs для настройки нескольких проектов - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть многопроектная настройка gradle, например, так:

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

Я хочу применить SpotBugs ко всем моим проектам.

Явное выполнение следующих действий в каждом проекте.

Например, следующее в build.gradle из 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.

Пример, внутри следующего блока:

configure(subprojects.findAll {it.name != 'SomeProjectToIgnore'}) {
   // how to configure spotbugs here ?
}

Перемещение блока как есть, не работает.

1 Ответ

0 голосов
/ 09 февраля 2019

Вы можете настроить spotbugs в build.gradle корневого проекта следующим образом:

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 ]
    }

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...