FindBugs thực sự đang quét các tệp lớp được biên dịch, không phải là sourcePath
. Nếu bạn đang biên dịch các tệp src/* và test/* của mình vào các thư mục khác nhau, bạn chỉ có thể sử dụng phần tử lồng nhau <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>
Điều đó sẽ không hoạt động nếu src/* và thử/* được biên dịch thành một thư mục duy nhất. Trong trường hợp đó, hãy sử dụng filter file và loại trừ các gói hoặc tên lớp tương ứng với các thử nghiệm.
<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>
nơi exclude.xml
trông giống như:
<FindBugsFilter>
<Match>
<Class name="~.*Test$"/>
</Match>
<Match>
<Package name="~test\..*"/>
</Match>
</FindBugsFilter>
giải thích tốt ... dường như tôi cần bắt đầu uống cà phê hoặc gì đó. Đã xóa câu trả lời của tôi, cũng chính xác là gây hiểu nhầm. – TofuBeer