在ant任务中运行findbugs时获得以下异常。
在我的findbugs家里,我有一个0.7版本的findbugs jar和1.3.8版本的jsr305 jar。如果我错过了什么,请告诉我
findbugs:
[findbugs]从ant任务执行findbugs [findbugs]运行FindBugs ...
[findbugs] java.lang.NoClassDefFoundError:edu / umd / cs / findbugs / FindBugs2
[findbugs]引起:java.lang.ClassNotFoundException:edu.umd.cs.findbugs.FindBugs2
[findbugs] at java.net.URLClassLoader $ 1.run(Unknown Source)
[findbugs] at java.security.AccessController.doPrivileged(Native Method)
[findbugs] at java.net.URLClassLoader.findClass(Unknown Source)
[findbugs] at java.lang.ClassLoader.loadClass(Unknown Source)
[findbugs] at sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source)
[findbugs] at java.lang.ClassLoader.loadClass(Unknown Source)
[findbugs]无法找到主类:edu.umd.cs.findbugs.FindBugs2。程序将退出。
[findbugs]线程“main”中的异常
[findbugs]输出保存到findbugs.xml
<property name="build" value="C:\.hudson\jobs\project\workspace\child\classes" />
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
<target name="findbugs" >
<findbugs home="C:\apache-ant-1.7.1\lib\findbugsant"
output="xml"
outputFile="findbugs.xml">
<sourcePath path="C:\.hudson\jobs\project\workspace"/>
<class location="${build}" />
</findbugs>
</target>
答案 0 :(得分:9)
在taskdef中,使用classpath属性指定包含findbugs类(FindBugsTask)的jar的确切位置。尝试这样的事情:
<taskdef name="findbugs" classpath="C:\apache-ant-1.7.1\lib\findbugsant\findbugs-ant.jar" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" />
我的findbugs jar是 findbugs-ant.jar ,所以在建议的解决方案中检查一下,并使用适用于你的情况的findbugs文件名,你应该没问题。
答案 1 :(得分:0)
它看起来像是findbugs
ant
的安装/配置。
在上面的代码段中,看起来findbugs
已在<{1}} ant的子文件夹中已安装,而不仅仅是lib
被复制到其中documented