我需要为我的 findbugs ant 脚本设置一个过滤器文件,它只扫描 src/* 文件而不扫描 test/* 文件。
在忽略名称中带有“test”的任何文件名或包名的同时检查所有类的语法是什么?
最佳答案
FindBugs 实际上是在扫描已编译的类文件,而不是 sourcePath
.如果您将 src/* 和 test/* 文件编译到不同的目录,您可以只使用嵌套的 <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>
如果 src/* 和 test/* 都被编译到一个目录中,那将不起作用。在这种情况下,使用 filter file并排除测试对应的包名或类名。
<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>
哪里exclude.xml
看起来像:
<FindBugsFilter>
<Match>
<Class name="~.*Test$"/>
</Match>
<Match>
<Package name="~test\..*"/>
</Match>
</FindBugsFilter>
关于java - 用于忽略 JUnit 测试的 FindBugs 过滤器文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/756523/