Verwendung habe ich die folgende Gradle-Datei erstellen: https://github.com/markuswustenberg/jsense/blob/a796055f984ec309db3cc0f3e8340cbccac36e4e/jsense-protobuf/build.gradle beinhaltet:"schließt" config in Findbugs und Checkstyle Plugin in Gradle
checkstyle {
// TODO The excludes are not working, ignore failures for now
//excludes '**/org/jsense/serialize/protobuf/gen/**'
ignoreFailures = true
showViolations = false
}
findbugs {
// TODO The excludes are not working, ignore failures for now
//excludes '**/org/jsense/serialize/protobuf/gen/**'
ignoreFailures = true
}
Wie Sie sehen können, ich versuche automatisch generierten Code auszuschließen in das Paket org.jsense.serialize.protobuf.gen. Ich kann nicht das Format des zu dem schließt Parameter angegeben Strings herauszufinden, und die Dokumentation ist nicht viel helfen: http://www.gradle.org/docs/1.10/dsl/org.gradle.api.plugins.quality.FindBugs.html#org.gradle.api.plugins.quality.FindBugs:excludes (es sagt nur „Der Satz von Mustern auszuschließen.“).
Also meine Frage ist: Wie sollten die Muster schließt Zeichenfolgen für die Findbugs und Check beide Plugins formatiert werden?
Ich bin mit Gradle 1.10.
Danke!
EDIT 1: Ich habe die Check ausschließen arbeiten mit den folgenden:
tasks.withType(Checkstyle) {
exclude '**/org/jsense/serialize/protobuf/gen/**'
}
jedoch mit der exakt gleichen auf dem Findbugs Plugin ausschließen funktioniert nicht:
tasks.withType(FindBugs) {
exclude '**/org/jsense/serialize/protobuf/gen/*'
}
EDIT 2: Die akzeptierte Antwort funktioniert, und so eine XML-Datei und Filterung auf, dass nicht verwendet wird, etwa so:
findbugs {
excludeFilter = file("$projectDir/config/findbugs/excludeFilter.xml")
}
und
<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
<Match>
<Package name="org.jsense.serialize.protobuf.gen"/>
</Match>
</FindBugsFilter>
EDIT 3: Dies funktioniert gut, und keine XML-Datei benötigt wird:
def excludePattern = 'org/jsense/serialize/protobuf/gen/'
def excludePatternAntStyle = '**/' + excludePattern + '*'
tasks.withType(FindBugs) {
classes = classes.filter {
!it.path.contains(excludePattern)
}
}
tasks.withType(Checkstyle) {
exclude excludePatternAntStyle
}
tasks.withType(Pmd) {
exclude excludePatternAntStyle
}
Ich habe das Gefühl, das ist ein Fehler im Findbugs-Plugin. Das schließt aus, dass sowohl für Checkstyle als auch für PMD keine Probleme auftreten. Laut Dokumentation sollten sie dasselbe Format haben. –
Ich habe es mit einer externen Ausschlussdatei zu arbeiten (siehe https://github.com/markuswustenberg/jsense/blob/45fa6164943d85f6390cb8ad258c2b35cf09b125/jsense-protobuf/build.gradle), so dass ich denke, es ist in der Tat ein Fehler in der Findbugs gradle Plugin . Ich werde einen Fehler melden, wenn ich herausfinde wie. –
Rechts, berichtet hier: http://forums.gradle.org/gradle/topics/findbugs_task_ignores_excludes_property_set_via_exclude_method –