查找错误:
[findbugs] Executing findbugs from ant task
[findbugs] Running FindBugs...
[findbugs] java.lang.NoClassDefFoundError: org/apache/bcel/classfile/ClassFormtException
[findbugs] Caused by: java.lang.ClassNotFoundException: org.apache.bcel.classfile.ClassFormatException
[findbugs] at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
[findbugs] at java.security.AccessController.doPrivileged(Native Method)
[findbugs] at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[findbugs] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
[findbugs] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[findbugs] at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
[findbugs] Could not find the main class: edu.umd.cs.findbugs.FindBugs2. Program will exit.
[findbugs] Exception in thread "main"
尽管我将 findbugs 和必要的 jar 文件保留在所需的文件夹中,但我在使用 ant 执行 findbugs 时遇到了这个问题。
我使用 findbugs 1.3.2 和 bcel 5.2。
如何解决这个问题?
[findbugs] Output saved to bugs/reports/findbugs.xml
The 查找错误文档陈述如下:
Note
强烈建议您将 Ant 任务与其附带的 FindBugs 版本一起使用。我们不保证 Ant 任务 Jar 文件适用于除包含该文件之外的任何版本的 FindBugs。
您没有指出您正在使用哪个版本的 ANT 任务......
我建议使用像这样的依赖管理器ivy处理复杂的类路径,如下所示:
<project name="demo" default="findbugs" xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="init" description="Use ivy to manage ANT tasks">
<ivy:cachepath pathid="findbugs.path">
<dependency org="com.google.code.findbugs" name="findbugs-ant" rev="2.0.1" conf="default"/>
</ivy:cachepath>
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpathref="findbugs.path"/>
</target>
<target name="findbugs" depends="init">
..
<findbugs ..
..
</target>
</project>
最后,还值得考虑使用Sonar。 Sonar ANT 任务为您管理所有 findbugs 依赖项,还运行 checkstyle 和 PMD 等其他工具。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)