1

我正在使用以下链接创建一个 ant 脚本以在 Web 应用程序上运行 findbugs: 第 6 章。使用 FindBugs™ Ant 任务

我将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 安装库中。findbugs 目录存在。

其他信息:
IDE:Netbeans 7.3
操作系统:Microsoft Windows XP
Ant 版本: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]....

任何想法,为什么查找错误正在分析它不应该分析的 jars(根据文档)

4

3 回答 3

3

我试图跟踪源代码中使用了哪些罐子。

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

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

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

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

于 2013-05-21T05:47:00.393 回答
1

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

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

将它放在 findbugs 标签内。

于 2015-03-26T20:46:43.650 回答
0

尝试删除此行

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

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

如果在分析源代码期间遇到类,则需要此行并用于查找该类。

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

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

于 2013-04-09T10:13:15.830 回答