4

Ant 任务的FindBugs 文档有点混乱。传统上,我一直通过 Eclipse 插件使用 FindBugs,您只需在其中选择项目并单击“FindBugs”即可获得报告。

findbugsAnt 任务中,有一个嵌套<class>元素:

A[n] 可选嵌套元素,指定要分析的类。

根据我看到的示例,看起来 FB 实际上要求您首先 JAR 您的项目,然后再在其上运行 FB 任务。

有人可以确认这一点并解释class元素是什么吗?对于像我这样的新手来说,这个描述很模糊。

其次,更重要的是,我的项目实际上是一个 Java Web 应用程序 (WAR) 文件。

所以,如果我没记错的话,如果 FB 需要有一个 JAR 来进行分析,那么我的策略是在<target name="findbugs">目标内部创建我的项目的“临时 JAR”,并让它由我所有编译的 Java 类。这不会是可执行的,只会满足 FB 的要求,并且会在以后的构建中被删除。

我在这里离基地很远吗?Java Web 应用程序构建者在其 Ant 构建中使用 FB 的标准操作程序是什么?提前致谢!

4

1 回答 1

0

如果您下载 FindBugs 本身(在我的情况下,版本 2.0.1)并从包含的批处理文件启动 gui,它会限制您可以放入项目中进行分析的文件类型:在“新建项目”对话框中,“jar ,战争,耳朵,拉链,sar”。所以,我想,压缩你的 .class 文件就足够了——毕竟,一个 .jar 只是你的 .class 文件在它们的文件夹结构中的一个压缩,加上添加的清单文件。

但是,如果您打开一个包含非压缩源文件的文件夹,FindBugs 仍然会尝试分析。

[更新我终于让 FindBugs ant 任务在我的系统上工作。它绝对适用于类文件。让它运行起来需要做很多工作,因为有一些棘手的问题需要阅读源代码才能解决。例如,包含您自己的 jars 是很棘手的,例如使用 log4j 日志记录,一些可以帮助您的参数是未记录的,并且要报告的错误的最低等级非常高,据我所知无法降低。如果您有任何问题,请告诉我,我很乐意提供帮助。]

于 2012-11-07T17:30:22.510 回答