使用gradle-jpi-plugin
插件管理Jenkins插件...升级配置后使用Jenkins"核心版本" 2.7.1
(来自1.581
),并运行本地服务器命令(./gradlew server
)我收到了以下stackoverflow:
0.18.1
2.7.1
2.13
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)
答案 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)
也许您应该升级您的"外部监视器作业类型插件"到最新版本。希望这有帮助。