gradle-jpi-plugin> NoSuchMethodError:hudson.model.Messages.ExternalJob_DisplayName()

时间:2016-08-03 12:13:15

标签: jenkins

使用gradle-jpi-plugin插件管理Jenkins插件...升级配置后使用Jenkins"核心版本" 2.7.1(来自1.581),并运行本地服务器命令(./gradlew server)我收到了以下stackoverflow:

版本

  • gradle-jpi-plugin:0.18.1
  • jenkins:2.7.1
  • gradle:2.13

Stackoverflow(full

java.lang.NoSuchMethodError: hudson.model.Messages.ExternalJob_DisplayName()Ljava/lang/String;
    at hudson.model.ExternalJob$DescriptorImpl.getDisplayName(ExternalJob.java:132)
    at hudson.ExtensionComponent.compareTo(ExtensionComponent.java:97)
    at hudson.ExtensionComponent.compareTo(ExtensionComponent.java:42)
    at java.util.ComparableTimSort.binarySort(ComparableTimSort.java:232)
    at java.util.ComparableTimSort.sort(ComparableTimSort.java:176)
    at java.util.ComparableTimSort.sort(ComparableTimSort.java:146)
    at java.util.Arrays.sort(Arrays.java:472)
    at java.util.Collections.sort(Collections.java:155)
    at hudson.ExtensionList.sort(ExtensionList.java:369)
    at hudson.ExtensionList.ensureLoaded(ExtensionList.java:289)
    at hudson.ExtensionList.iterator(ExtensionList.java:156)
    at hudson.diagnosis.NullIdDescriptorMonitor.verify(NullIdDescriptorMonitor.java:67)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:104)
    at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175)
    at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282)
    at jenkins.model.Jenkins$7.runTask(Jenkins.java:999)
    at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210)
    at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
…
A thread (Jenkins initialization thread/17) died unexpectedly due to an uncaught exception, this may leave your Jenkins in a bad way and is usually indicative of a bug in the code.
java.lang.StackOverflowError
    at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
    at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
    at java.io.File.exists(File.java:772)
    at hudson.util.TextFile.exists(TextFile.java:57)
    at hudson.model.UpdateSite.getData(UpdateSite.java:289)
    at hudson.model.UpdateSite.getPlugin(UpdateSite.java:349)
    at hudson.model.UpdateCenter.getPlugin(UpdateCenter.java:611)
    at hudson.model.UpdateSite$Plugin.getNeededDependencies(UpdateSite.java:733)
    at hudson.model.UpdateSite$Plugin.isNeededDependenciesForNewerJenkins(UpdateSite.java:800)
    at hudson.model.UpdateSite$Plugin.isNeededDependenciesForNewerJenkins(UpdateSite.java:801)
    at hudson.model.UpdateSite$Plugin.isNeededDependenciesForNewerJenkins(UpdateSite.java:801)
    at hudson.model.UpdateSite$Plugin.isNeededDependenciesForNewerJenkins(UpdateSite.java:801)

另见

2 个答案:

答案 0 :(得分:0)

我对此问题感到有点困惑,因为类路径上没有引用ExternalJob类。事实上,这堂课似乎已经很老了,我找不到最近对它的引用using grepcode ......

在grep访问本地目录后,我在工作目录中找到了一个引用,在一个我没有使用的插件中...

$ grep -r "ExternalJob" *
Binary file work/plugins/external-monitor-job/WEB-INF/lib/classes.jar matches
Binary file work/plugins/external-monitor-job.jpi matches
Binary file work/war/WEB-INF/detached-plugins/external-monitor-job.hpi matches

删除目录(并重新运行./gradlew server)为我解决了这个问题。

答案 1 :(得分:0)

也许您应该升级您的"外部监视器作业类型插件"到最新版本。希望这有帮助。