2013-04-09 57 views
1

我使用下面的鏈接創建Ant腳本在Web應用程序運行的FindBugs: Chapter 6. Using the FindBugs™ Ant taskFindBugs的掃描外部罐子

我的auxClasspath參數設置爲我的罐子文件夾。

但是當我運行使用螞蟻FindBugs的從命令提示符的任務,它需要很長的時間(〜45分鐘)和輸出XML包含在auxClasspath罐子的分析,以及我的源碼。

我只想分析我的源代碼。

這是我的build.xml代碼:

<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/> 
<property name="findbugs.home" value="C:/Software/FindBugs" /> 
<target name="findbugs" > 
    <echo message="Finding Bugs From ${basedir}/src/java"/> 
    <findbugs home="${findbugs.home}" 
       output="xml:withMessages" 
       outputFile="${basedir}\findbugs.xml" 
       stylesheet="fancy-hist.xsl" 
       timeout="6000000" 
       jvmargs="-Xmx1200m"> 
     <auxClasspath path="${basedir}/Jars/*.jar" /> 
     <sourcePath path="${basedir}/src/java"/> 
     <class location="${basedir}/build/myApp-1.0.jar" /> 
    </findbugs> 
</target> 

我已經加入了findBUGs-的ant.jar我的螞蟻安裝的庫。 findbugs目錄存在。

其他信息:
IDE:Netbeans的7.3
操作系統:Microsoft Windows XP
螞蟻版本:1.8.4
發現錯誤版本:2.0.2

更新

如果我省略此行:

<auxClasspath path="${basedir}/Jars/*.jar" /> 

我得到我想要的輸出(即。只分析我的源代碼)。 但它提出了一個警告:

[findbugs] The following classes needed for analysis were missing: 
[findbugs] javax.servlet.http.HttpServlet 
[findbugs] javax.servlet.http.HttpServletRequestWrapper 
[list continues].... 

任何想法,爲什麼發現漏洞是分析罐子,它不應該分析(根據文檔)

回答

3

我試圖跟蹤源代碼中使用哪些罐子。

在FindBugs的XML輸出,我發現了一個行:$ {BASEDIR} \罐\ ANTLR-2.7.2.jar

的FindBugs的分析報告表明,所有的其他罐子(除ANTLR-2.7.2 .jar)失蹤。

沒有更多的auxClassPath條目。通過在不同的行中指定每個類路徑條目來解決這個問題。

如果有人有任何更好的想法,請捐助。

0

嘗試刪除此行

<class location="${basedir}/build/myApp-1.0.jar" /> 

現在要嘗試分析jar和源文件,這需要很長時間。

如果在分析源代碼時遇到此類,則需要使用此行來查找該類。

<auxClasspath path="${basedir}/Jars/*.jar" /> 

也許可以將它限制爲只有真正需要的罐子,而不是全部在文件夾中。

+0

該行用於指示我的源文件的位置,以便最終輸出xml包含findbugs發出警告的代碼的詳細信息。 – Shiva 2013-04-09 10:29:08

+0

@ShivanandaSahu,見更新。 – 2013-04-09 10:41:47

+0

這是我寫的。你是否指的是其他更新? – Shiva 2013-04-09 10:55:01

1

我使用下面的auxClasspath設置來拉入我的lib文件夾中的所有罐子以及我lib文件夾下目錄中的所有罐子。

<auxClasspath> 
    <fileset dir="${lib.dir}"> 
     <include name="*/**"/> 
     <include name="*.jar"/> 
    </fileset> 
</auxClasspath> 

將它放在findbugs標記中。