FindBugs scannt tatsächlich die kompilierten Klassendateien, nicht die sourcePath
. Wenn Sie die Dateien src/* und test/* in den verschiedenen Verzeichnissen kompilieren, können Sie einfach das verschachtelte Element <class...>
verwenden.
<findbugs home="${findbugs.dir}" output="xml:withMessages"
outputFile="${findbugs.report.xml}" jvmargs="-Xmx256M"
effort="max" projectName="${ant.project.name}"
auxClasspathRef="findbugs.classpath"
sourcePath="${src.dir}">
<class location="${src.classes.dir}"/>
</findbugs>
Das funktioniert nicht, wenn src/* und test/* beide in ein einzelnes Verzeichnis kompiliert werden. Verwenden Sie in diesem Fall eine filter file und schließen Sie die Pakete oder Klassennamen aus, die den Tests entsprechen.
<findbugs home="${findbugs.dir}" output="xml:withMessages"
outputFile="${findbugs.report.xml}" jvmargs="-Xmx256M"
effort="max" projectName="${ant.project.name}"
auxClasspathRef="findbugs.classpath"
sourcePath="${src.dir}"
excludefilter="exclude.xml">
<class location="${classes.dir}"/>
</findbugs>
wo exclude.xml
wie folgt aussieht:
<FindBugsFilter>
<Match>
<Class name="~.*Test$"/>
</Match>
<Match>
<Package name="~test\..*"/>
</Match>
</FindBugsFilter>
gute Erklärung ... anscheinend muss ich anfangen, Kaffee oder etwas zu trinken. Löschte meine Antwort, die gut korrekt ist irreführend. – TofuBeer