FindBugs esegue effettivamente la scansione dei file di classe compilati, non lo sourcePath
. Se stai compilando i tuoi file src/* e test/* nelle diverse directory, puoi semplicemente usare l'elemento nidificato <class...>
.
<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>
Ciò non funzionerà se src/* e test/* sono entrambi compilati in una singola directory. In tal caso, utilizzare filter file ed escludere i pacchetti oi nomi di classe corrispondenti ai test.
<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>
dove exclude.xml
assomiglia:
<FindBugsFilter>
<Match>
<Class name="~.*Test$"/>
</Match>
<Match>
<Package name="~test\..*"/>
</Match>
</FindBugsFilter>
buona spiegazione ... a quanto pare ho bisogno di iniziare a bere un caffè o qualcosa del genere. Cancellata la mia risposta, che correttamente è fuorviante. – TofuBeer