FindBugs docs for Ant tasks有点令人困惑。我传统上总是通过Eclipse插件使用FindBugs,您只需选择项目并单击“FindBugs”即可获得报告。
使用findbugs
Ant任务,有一个嵌套的<class>
元素:
一个[n]可选的嵌套元素,指定要分析的类。
根据我看到的示例,看起来FB实际上要求您在运行FB任务之前首先JAR项目。
有人可以确认并解释class
元素是什么吗?对于像我这样的新人来说,描述非常模糊。
其次,更重要的是,我的项目实际上是一个Java Web应用程序(WAR)文件。
所以,如果我没有弄错,并且FB需要有一个JAR来进行分析,那么我的策略是在<target name="findbugs">
目标内创建项目的“临时JAR” ,它只是由我所有编译的Java类组成。这将不是可执行的,只会满足FB,并将作为后期构建的一部分删除。
我离开基地吗? Java Web应用程序构建器在其Ant构建中使用FB的标准操作过程是什么?提前谢谢!
答案 0 :(得分:0)
如果您下载FindBugs本身(在我的情况下,版本2.0.1)并从包含的批处理文件启动gui,它会限制您可以放入项目进行分析的文件类型:在“New Project”对话框中, “jar,war,ear,zip,sar”。 所以,我想,压缩你的.class文件就足够了 - 毕竟,.jar只是你文件夹结构中.class文件的一个zip,再加上清单文件。
但是,如果您打开包含非压缩源文件的文件夹,FindBugs仍会尝试分析。
[更新我终于让FindBugs ant任务在我的系统上工作了。它肯定适用于类文件。 要让它运行起来是一项相当大的工作,因为有一些棘手的问题需要阅读源代码才能解决。例如,包含您自己的罐子是很棘手的,例如对于使用log4j日志记录,一些可以帮助你的参数没有记录,并且报告错误的最低等级非常高,并且根据我的经验无法降低。如果您有任何问题,请告诉我,我很乐意提供帮助。]