Hudson CI和FindBugs / Static Analysis插件的问题

时间:2012-05-05 10:02:20

标签: java maven hudson maven-3 hudson-plugins

我安装了Hudson v2.20。我正在尝试安装FindBugs插件,但是当Hudson在下载插件后重新启动时,插件无法加载,并出现以下错误。有没有人见过这个?如果是这样,我将如何解决它?

我使用Hudson插件界面安装了插件。我的猜测是插件由于某种原因与Hudson版本不兼容?

hudson.util.IOException2: Failed to load plugin instance for: analysis-core
    at org.hudsonci.inject.internal.plugin.SmoothiePluginStrategy.load(SmoothiePluginStrategy.java:193)
    at org.hudsonci.inject.internal.plugin.DelegatingPluginStrategy.load(DelegatingPluginStrategy.java:72)
    at hudson.PluginManager$2$1$1.run(PluginManager.java:297)
    at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
    at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
    at hudson.model.Hudson$4.runTask(Hudson.java:698)
    at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
    at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.LinkageError: loader (instance of  org/hudsonci/inject/internal/plugin/PluginClassLoader): attempted  duplicate class definition for name: "org/apache/xerces/parsers/SAXParser"
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:465)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:139)
    at org.aspectj.weaver.bcel.ExtensibleURLClassLoader.defineClass(ExtensibleURLClassLoader.java:63)
    at org.aspectj.weaver.loadtime.WeavingURLClassLoader.defineClass(WeavingURLClassLoader.java:151)
    at org.aspectj.weaver.bcel.ExtensibleURLClassLoader.defineClass(ExtensibleURLClassLoader.java:97)
    at org.aspectj.weaver.bcel.ExtensibleURLClassLoader.findClass(ExtensibleURLClassLoader.java:52)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at hudson.ClassicPluginStrategy$DependencyClassLoader.findClass(ClassicPluginStrategy.java:426)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:295)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at org.xml.sax.helpers.NewInstance.newInstance(NewInstance.java:49)
    at org.xml.sax.helpers.XMLReaderFactory.loadClass(XMLReaderFactory.java:187)
    at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReaderFactory.java:150)
    at org.aspectj.weaver.loadtime.definition.DocumentParser.getXMLReader(DocumentParser.java:167)
    at org.aspectj.weaver.loadtime.definition.DocumentParser.saxParsing(DocumentParser.java:137)
    at org.aspectj.weaver.loadtime.definition.DocumentParser.parse(DocumentParser.java:117)
    at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.parseDefinitions(ClassLoaderWeavingAdaptor.java:258)
    at org.aspectj.weaver.loadtime.DefaultWeavingContext.getDefinitions(DefaultWeavingContext.java:130)
    at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:161)
    at org.aspectj.weaver.loadtime.WeavingURLClassLoader.createAdaptor(WeavingURLClassLoader.java:171)
    at org.aspectj.weaver.loadtime.WeavingURLClassLoader.defineClass(WeavingURLClassLoader.java:132)
    at org.aspectj.weaver.bcel.ExtensibleURLClassLoader.defineClass(ExtensibleURLClassLoader.java:97)
    at org.aspectj.weaver.bcel.ExtensibleURLClassLoader.findClass(ExtensibleURLClassLoader.java:52)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at org.hudsonci.inject.internal.plugin.SmoothiePluginStrategy.loadPluginClass(SmoothiePluginStrategy.java:217)
    at org.hudsonci.inject.internal.plugin.SmoothiePluginStrategy.load(SmoothiePluginStrategy.java:188)
    ... 10 more

2 个答案:

答案 0 :(得分:1)

根据我的一位同事的建议,我安装了Jenkins。一切都是第一次没有错误。我猜这个社区已经转移到了詹金斯身上,一旦甲骨文把它送到日食基金会,没有人会回到哈德森身边。

答案 1 :(得分:1)

对不起,您对此有不好的体验。这个插件是插件所有者指定为与Hudson和Jenkins兼容的众多插件之一[1]。不幸的是,似乎Jenkins通过改变它的maven-plugin来破坏了这种兼容性,这是插件直接依赖的核心部分。 Hudson已经暂时恢复到早期版本的静态分析,现在将直接分叉并维护它和相关的插件。

Hudson非常努力地保持两个系统之间的兼容性,以及添加Sonatype和Cascading项目功能的Maven 3集成等新功能,以及改善去年的性能和稳定性。这些都没有反映在詹金斯身上。

Hudson正处于Eclipse的里程碑版本中,并将于6月完全发布,因为通过Eclipse的IP和来源检查(以及相关的代码和库清理)的巨大任务即将完成。您可以在博客或Eclipse站点[2]上阅读更多相关信息。它仍然蓬勃发展,哈德森用户社区并没有全部继续前进。

[1] http://wiki.hudson-ci.org/display/HUDSON/Plugins#Plugins-tier3

[2] http://www.eclipse.org/hudson