gpt4 book ai didi

maven-2 - 如何让 Hudson 生成 Findbugs 报告而不会因异常而失败?

转载 作者:行者123 更新时间:2023-12-02 15:34:22 26 4
gpt4 key购买 nike

更新

从 Hudson Findbugs 插件版本 4.3 开始,这不再是问题

结束更新

作为我的问题的一个例子,我正在尝试构建以下项目 http://www.sonatype.com/books/mvnex-book/reference/multimodule.html

我将以下内容添加到 simple-parent/pom.xml

<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.3</version>
<configuration>
<findbugsXmlOutput>true</findbugsXmlOutput>
<findbugsXmlWithMessages>true</findbugsXmlWithMessages>
<xmlOutput>true</xmlOutput>
</configuration>
</plugin>
</plugins>
</reporting>

以下内容为 simple-weather/pom.xml 和 simple-webapp/pom.xml

<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
</plugin>
</plugins>
</reporting>

我将以下可怕的 equals 方法插入到其中一个类中,以使 FindBugs 生成一些问题(因为 0 个错误没有错误):

public boolean equals(Object o) { return true; }

我正在将 Hudson 与 maven2 风格的项目一起使用。这项工作的目标是简单父级 pom 的目标

clean site

我收到以下异常:

[INFO] Generating "FindBugs Report" report.
[java] Warnings generated: 2
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Cannot inherit from final class
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.VerifyError: Cannot inherit from final class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch2(RemoteClassLoader.java:370)
at sun.reflect.GeneratedMethodAccessor594.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:274)
at hudson.remoting.Request$2.run(Request.java:270)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
at java.lang.Thread.run(Thread.java:595)

版本信息:

  • Maven 2.2.1
  • Java 1.5.0_22
  • Hudson 1.341(也在 1.339 上找到)在 JBoss 4.0.5.GA 中运行(在 4.2.2.GA 和 5.1.0.GA 上出现相同的错误)
  • Maven FindBugs 插件 2.3
  • Hudson FindBugs 插件 4.1

关于如何解决这个问题有什么想法吗?

最佳答案

根据 FindBugs FAQ,当使用错误版本的 Apache BCEL 时会出现此问题(请参阅 Q2: When I click the "Find Bugs!" button, I get a NoSuchMethodError or VerifyError )。就您而言,我怀疑 maven-findbugs-plugin 正在从 JBoss 获取 BCEL 库,因为存在一些模糊的类加载问题。 Hudson 的 Jira 中存在一些非常相似的错误,例如HUDSON-5134 (hudson findbugs 插件也受到影响)。

我的理解是,这个问题是最近引入的(在 v1.338 中),即使有解决方法,它一个 Hudson 错误(它是回归,这不是 JBoss 的问题)。

现在,在我看来,你有两个解决方案:

  • 使用 v1.338 之前的 Hudson 版本(已报告该版本的回归),但使用旧版本并坚持使用它肯定不是一个真正可行的解决方案。
  • 使用 maven-findbugs-plugin 使用的版本删除或替换 JBoss 的 bcel.jar(位于 server/SERVERNAME/lib 中)(请参阅 dependencies )。我无法确切地说这将如何影响 JBoss(如果删除它,似乎您将失去在 Debug模式下运行 JBoss 的能力,但我不能说如果替换它,是否一切都会正常工作) .

无论您要做什么,请创建一个新的 Jira 问题 ( http://issues.hudson-ci.org/ ),因为这是 Hudson 中的回归。他们已标记HUDSON-5134为“不会修复”,因为有一个解决方法,但我不认为弄乱 JBoss 库是一个好的解决方案(我重复一遍,但这是一个 Hudson 错误)。因此,坚持并让 Hudson 开发人员知道其他用户受到此问题的影响将有助于整个社区(至少我希望如此)。

关于maven-2 - 如何让 Hudson 生成 Findbugs 报告而不会因异常而失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2104314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com