2015-12-02 8 views
6

Ho provato a impostare un'attività findbugs personalizzata con gradle che avrà un percorso pluginClass diverso da quelli predefiniti.Come configurare un'attività findbugs personalizzata in gradle con un diverso pluginClasspath

Quindi le attività predefinite devono utilizzare le regole predefinite di FindBugs mentre quella personalizzata deve utilizzare le regole di sicurezza findbugs. La mia configurazione è simile al seguente:

dependencies { 
    findbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.4.4' 
} 

findbugs { 
    // general config 
} 

task findbugsSecurity(type: FindBugs, dependsOn: classes) { 
    classes = fileTree(project.sourceSets.main.output.classesDir) 
    source = project.sourceSets.main.java.srcDirs 
    classpath = files() 

    pluginClasspath = files(configurations.findbugsPlugins.asPath) 
} 

Tuttavia, se corro il compito findbugsMain ora, include anche i controlli da findbugs sicurezza!

Come posso configurarlo in modo che i controlli di sicurezza findbugs vengano utilizzati solo nell'attività personalizzata?

risposta

3

Sembra che la configurazione dell'attività findbugsSecurity stia anche cambiando il comportamento di findbugsMain come probabilmente avete indovinato.

Il trucco è quello di utilizzare una nuova configurazione perché Gradle cercherà automaticamente le dipendenze per la configurazione findbugsPlugins e che si applicherà a tutte le chiamate di findbugs (Vedi pluginClasspath part of FindBugs DSL):

configurations { 
    foo 
} 

dependencies { 
    // Important that we use a new configuration here because Gradle will use the findbugsPlugins configurations by default 
    foo 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.4.4' 
} 

findbugs { /* whatever */ } 

task findbugsSecurity(type: FindBugs, dependsOn: classes) { 
    classes = fileTree(project.sourceSets.main.output.classesDir) 
    source = project.sourceSets.main.java.srcDirs 
    classpath = files() 
    pluginClasspath = files(configurations.foo.asPath) 
} 
+0

Grande! Non ho visto nella documentazione che le dipendenze 'findbugsPlugins' sono usate di default per il plugin findbugs – Kutzi

Problemi correlati