2014-02-12 9 views
7

Ist es möglich, die fb-contrib-Bibliothek mit Gradle's FindBugs plugin zu integrieren? Ich habe eine Weile nach einer Lösung gesucht, aber bis jetzt habe ich noch nichts gefunden ...Verwenden der fb-contrib-Bibliothek mit dem FindBugs-Plugin von Gradle

Wenn es hilft, hier ist das Skript, das ich gerade habe. Es wird gerade gearbeitet, aber der Bericht wird korrekt erstellt.

apply plugin: "findbugs" 

task findbugs(type: FindBugs) { 

    classes = fileTree(project.rootDir.absolutePath).include("**/*.class"); 
    source = fileTree(project.rootDir.absolutePath).include("**/*.java"); 
    classpath = files() 

    findbugs { 
      toolVersion = "2.0.3" 
      ignoreFailures = true 
      effort = "max" 
      reportLevel = "low" 
      reportsDir = file("${projectDir}/reports/findbugs") 
      sourceSets = [it.sourceSets.main, it.sourceSets.test] 
    } 

    tasks.withType(FindBugs) { 
      reports { 
        xml.enabled = false 
        html.enabled = true 
      } 
    } 
} 

Vielen Dank im Voraus für jede Antwort.

Antwort

6

Ich bin gerade auf dasselbe Problem gestoßen. Ich konnte es wie folgt lösen:

apply plugin: 'findbugs' 

dependencies { 
    // We need to manually set this first, or the plugin is not loaded 
    findbugs 'com.google.code.findbugs:findbugs:3.0.0' 
    findbugs configurations.findbugsPlugins.dependencies 

    // To keep everything tidy, we set these apart 
    findbugsPlugins 'com.mebigfatguy.fb-contrib:fb-contrib:6.0.0' 
} 

task findbugs(type: FindBugs) { 
    // Add all your config here ... 

    pluginClasspath = project.configurations.findbugsPlugins 
} 

Hoffe, dass hilft!

Sie können durch Hinzufügen von ihnen unter Abhängigkeiten für findbugsPlugins

+0

Wenn ich es so mache. Z.B. 'Aufgabe findbugs (Typ: FindBugs) { toolVersion = "3.0.1" ... pluginClasspath = project.configurations.findbugsPlugins }' ich keine solche Eigenschaft: toolVersion für Klasse: org.gradle.api.plugins .quality.FindBugs_Decorated – Kutzi

+0

@Kutzi 'toolVersion' ist keine Aufgabeneigenschaft. Sie müssen diese Eigenschaft global mit 'findbugs {toolVersion =" 3.0.1 "} definieren. Überprüfen Sie die ursprüngliche Frage für ein Beispiel dazu. – Johnco

3

Wenn Sie die fb-contrib.jar in Findbugs Plugin-Verzeichnis platzieren, sollte es einfach automatisch abgeholt werden, würde ich denken. Habe es nie mit Gradle tho versucht.

+1

'findbugs.jar' erhalten automatisch über das Maven zentralen Repository mehr Findbugs Plugins nur hinzufügen:' Repositorys {mavenCentral()} '. Das Hinzufügen von 'fb-contrib.jar' zu dem Ordner, in dem 'findbugs.jar' ist, scheint nichts in der Ausgabe zu ändern. Seltsamerweise, wenn ich dem obigen Skript eine Maven-Abhängigkeit hinzufüge ... 'Abhängigkeiten {findbugs 'com.mebigfatguy: fbcontrib: 3.4.2-hudson-1'}' ... scheint der Build-Prozess beim Ausführen des "Findbugs" -Prozess. Glauben Sie, dass es eine Inkompatibilität zwischen älteren Versionen von 'fb-contrib.jar' und v2.0.3 von 'findbugs.jar' gibt? – DPR

+0

Warum eine solche alte Version verwenden? versuchen Sie, 5.0.3 – MeBigFatGuy

Verwandte Themen