Hudson 插件,Java 错误“...不同意 InnerClasses 属性”

Sta*_*ked 1 java hudson hudson-plugins

我试图能够单步执行名为 SVNPublisher 的 Hudson 插件的代码。我查看了 SVNPublisher 的代码,使用 Netbeans 打开项目,然后单击“调试主项目”。这会导致 Firefox 窗口打开地址http://localhost:8080,其中显示了 Hudson 主页。单击“新建作业”链接会导致错误页面:

HTTP ERROR: 500

jar:file:/home/francis/svn/svnpublisher/target/work/webapp/WEB-INF/lib/hudson-core-1.319.jar!/lib/hudson/newFromList/form.jelly:43:47: <j:forEach> hudson.scm.SubversionTagAction and hudson.scm.SubversionTagAction$DescriptorImpl disagree on InnerClasses attribute

RequestURI=/newJob
Caused by:

org.apache.commons.jelly.JellyTagException: jar:file:/home/francis/svn/svnpublisher/target/work/webapp/WEB-INF/lib/hudson-core-1.319.jar!/lib/hudson/newFromList/form.jelly:43:47:  hudson.scm.SubversionTagAction and hudson.scm.SubversionTagAction$DescriptorImpl disagree on InnerClasses attribute
    at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:713)
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:282)
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
    ...
Run Code Online (Sandbox Code Playgroud)

我对 Hudson 很陌生,对 Java 不是很熟悉,所以我对这个错误的含义几乎一无所知。

任何人都可以帮忙吗?

小智 6

我知道这个帖子已经很旧了,但我刚刚遇到了这个问题,想帮助其他有问题的人。

我发现当我在一个类中有一个 DescriptorImpl 时我遇到了这个问题(这是主类的一个子类)。就我而言,这是 ResourceAxis 包含 DescriptorImpl。

当我将 DescriptorImpl 重命名为 ResourceDescriptorImpl 时,我开始遇到这个问题。然后我开始收到以下错误消息:

Error injecting constructor, java.lang.IncompatibleClassChangeError: org.jenkinsci.plugins.matrix_resource_manager.ResourceAxis and org.jenkinsci.plugins.matrix_resource_manager.ResourceAxis$DescriptorImpl disagree on InnerClasses attribute
at org.jenkinsci.plugins.matrix_resource_manager.ResourceAxis$DescriptorImpl.<init>(ResourceAxis.java:94)
Run Code Online (Sandbox Code Playgroud)

这促使我将 ResourceDescriptorImpl 改回 DescriptorImpl - 因为它在抱怨 DiscriptorImpl。那时我收到此错误消息:

Error injecting constructor, java.lang.IncompatibleClassChangeError: org.jenkinsci.plugins.matrix_resource_manager.ResourceAxis and org.jenkinsci.plugins.matrix_resource_manager.ResourceAxis$ResourceDescriptorImpl disagree on InnerClasses attribute
at org.jenkinsci.plugins.matrix_resource_manager.ResourceAxis$ResourceDescriptorImpl.<init>(ResourceAxis.java:94)
Run Code Online (Sandbox Code Playgroud)

这是在抱怨 ResourceDescriptorImpl。我意识到我并没有每次都进行 Clean 构建,并且旧的编译代码可能会导致问题(因为我只更改了一个类,因此可能不会重新编译另一个类)。如果您看到此问题,请尝试进行干净的构建,看看是否能解决您的问题。

希望这可以帮助。