2009-09-14 37 views
3

我試圖讓FindBugs ant任務在生成的報告中包含源代碼信息。使用FindBugs ant任務查找源代碼路徑

<findbugs home="${findbugs.home}" output="xml" outputFile="${basedir}/findbugs/findbugs-${package.basename}.xml" excludeFilter="${basedir}/findbugsExclude.xml" jvmargs="-Xmx1048m"> 
    <sourcePath path="${package.srcdir}" /> 
<class location="${package}" /> 
<auxClasspath> 
    <path refid="findbugs.auxinput" /> 
    </auxClasspath> 
</findbugs> 

就我所見,$ {package.srcdir}屬性的值是正確的;它指向源代碼樹的根目錄,這樣$ {package.srcdir} /com/mydomain/MyClass.java是源文件的路徑。

生成的報告包含一個<SrcDir>元素,該元素與給予ant任務的源路徑匹配,因此顯然<sourcePath>元素由findbugs任務處理。儘管如此,XML報告中的軟件包統計信息僅包含sourceFile="&lt;Unknown&gt;"

我錯過了一些明顯的東西嗎?

+0

您是否在調用之前使用 $ {package.srcdir}來雙重檢查變量值? – 2009-09-14 09:22:01

+0

是的。我將字符串複製/粘貼到命令提示符中,並且Java源文件在那裏。 – JesperE 2009-09-14 11:25:13

回答

5

我有同樣的問題。

可能你的代碼是用「-g:none」編譯的。 如果您使用螞蟻的< javac>任務必須設置< javac debug = true>。

正確設置源代碼路徑(如findbugs手冊中所述)到頂層包的封裝文件夾(在eclipse中投影src文件夾),您應該會成功。

儘管如此,afaik還是有一些情況,findbugs無法確定合適的源代碼行號。

歡呼聲, 基督教

-1

嘗試這樣的回聲(INL INE二號):

<echo message="Finding Bugs From ${package.srcdir}"/> 

我懷疑package.srcdir尚未設定的值呢。嘗試使用

<sourcePath path="${basedir}/src/com" /> 

或者其中包含源文件的任何目錄。


不要忘了,如果它可以解決你的問題,以紀念一個答案,接受的答案。