Плагин Hudson, ошибка Java "... не согласен с атрибутом InnerClasses" - PullRequest
1 голос
/ 22 апреля 2010

Я пытаюсь пройтись по коду плагина Hudson под названием SVNPublisher. Я проверил код для 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)
    ...

Я очень плохо знаком с Хадсоном и не очень разбираюсь в Java, так что я почти не понимаю смысла этой ошибки.

Может кто-нибудь помочь?

Ответы [ 2 ]

4 голосов
/ 11 июня 2013

Я знаю, что эта ветка v. Старая, но у меня только что были эти проблемы, и я хотел помочь кому-то еще, кто имеет.

Я обнаружил, что получил эту проблему, когда у меня был 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)

Это побудило меня изменить 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)

Это жалоба на ResourceDescriptorImpl. Я понял, что не делаю чистую сборку каждый раз, и что старый скомпилированный код может вызывать проблемы (так как я изменяю только один класс, поэтому другой может не перекомпилироваться) Если вы видите эту проблему, попробуйте выполнить чистую сборку и посмотрите, решит ли она вашу проблему.

Надеюсь, это поможет.

1 голос
/ 31 мая 2010

Я столкнулся с той же проблемой, и, к сожалению, я пока не смог ее решить. Как упоминалось в VonC, это может быть связано с изменением использования обобщений между 1.5 и 1.6, это проблематично, поскольку даже если вы устанавливаете версию 1.5, hudson требует 1.6 для сборки и запуска через hpi: run.

Что я заметил, так это то, что если вы устанавливаете hudson локально (http://wiki.hudson -ci.org / display / HUDSON / Meet + Hudson # MeetHudson-TestDrive ), вы можете использовать команду maven install для генерации файл плагина .hpi и установите его. Я не получаю ту же ошибку, когда делаю то, что заставляет меня думать, что это может быть проблемой с целью hpi: run. Это должно как минимум позволить вам протестировать любые изменения, которые вам нужно сделать.

По совпадению я являюсь автором этого плагина SVN Publish, если у вас есть какие-либо вопросы. Я не вносил никаких изменений в последнее время, но я нашел эту ветку, потому что у меня есть некоторые в работе и столкнулся с этой проблемой;)

Спасибо, Brent

...