FindBugs扫描外部罐子

时间:2013-04-09 09:58:07

标签: java ant findbugs build.xml

我使用以下链接创建一个ant脚本以在Web应用程序上运行findbugs: Chapter 6. Using the FindBugs™ Ant task

我将 auxClasspath 参数设置为我的jars文件夹。

但是当我从命令提示符使用 ant findbugs 运行任务时,需要很长时间(~45分钟),输出xml包含 auxClasspath中jar的分析以及我的源代码。

我只想分析我的源代码。

这是我的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添加到我的ant安装的lib中。 findbugs目录存在。

其他信息:
IDE:Netbeans 7.3
操作系统:Microsoft Windows XP
蚂蚁版本:1.8.4
查找Bug版本: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 个答案:

答案 0 :(得分:3)

我试图跟踪源代码中使用的Jars。

在findbugs xml输出中,我找到了一行:$ {basedir} \ Jars \ antlr-2.7.2.jar

findbugs分析报告显示所有其他罐子(除了antlr-2.7.2.jar)都丢失了。

没有更多的auxClassPath条目。通过在不同的行中指定每个类路径条目来解决此问题。

如果有人有更好的想法,请善意贡献。

答案 1 :(得分:1)

我使用以下auxClasspath设置来拉入我的lib文件夹中的所有jar以及lib文件夹下目录中的所有jar。

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

将其放在findbugs标记内。

答案 2 :(得分:0)

尝试删除此行

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

现在尝试分析jar文件和源文件,这需要很长时间。

如果在分析您的来源时遇到类,则需要此行并用于查找该类。

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

也许可以将它限制为只需要真正需要的罐子,而不是文件夹中的所有罐子。

相关问题