Gerrit - 插件gerrit-owners-autoassign-1.1安装问题

时间:2015-10-15 19:46:14

标签: java plugins gerrit

我正在使用以下Stacktrace:

  

[2015-10-15 19:29:09,264]警告   com.google.gerrit.server.plugins.PluginLoader:无法加载插件   格里特业主-autoassign-1.1   com.google.common.util.concurrent.ExecutionError:   com.google.common.util.concurrent.ExecutionError:   java.lang.NoClassDefFoundError:   COM /谷歌/格里特/扩展/事件/ GitReferenceUpdatedListener $更新     在   com.google.common.cache.LocalCache $ Segment.get(LocalCache.java:2201)     在com.google.common.cache.LocalCache.get(LocalCache.java:3937)at   com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)at at   com.google.common.cache.LocalCache $ LocalLoadingCache.get(LocalCache.java:4824)     在   com.google.common.cache.LocalCache $ LocalLoadingCache.getUnchecked(LocalCache.java:4830)     在   com.google.inject.internal.FailableCache.get(FailableCache.java:48)     在   com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:50)     在   com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:136)     在   com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:533)     在   com.google.inject.internal.AbstractBindingProcessor $处理器$ 1.run(AbstractBindingProcessor.java:160)     在   com.google.inject.internal.ProcessedBindingData.initializeBindings(ProcessedBindingData.java:44)     在   com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:123)     在   com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)     在   com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:226)     在   com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:233)     在   com.google.gerrit.server.plugins.ServerPlugin.startPlugin(ServerPlugin.java:190)     在   com.google.gerrit.server.plugins.ServerPlugin.start(ServerPlugin.java:170)     在   com.google.gerrit.server.plugins.PluginLoader.runPlugin(PluginLoader.java:461)     在   com.google.gerrit.server.plugins.PluginLoader.rescan(PluginLoader.java:390)     在   com.google.gerrit.server.plugins.PluginLoader.start(PluginLoader.java:295)     在   com.google.gerrit.lifecycle.LifecycleManager.start(LifecycleManager.java:74)     在com.google.gerrit.pgm.Daemon.start(Daemon.java:293)at   com.google.gerrit.pgm.Daemon.run(Daemon.java:205)at   com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:64)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:606)at   com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:166)     在   com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:93)     在   com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:50)     在Main.main(Main.java:25)引起:   com.google.common.util.concurrent.ExecutionError:   java.lang.NoClassDefFoundError:   COM /谷歌/格里特/扩展/事件/ GitReferenceUpdatedListener $更新     在   com.google.common.cache.LocalCache $ Segment.get(LocalCache.java:2201)     在com.google.common.cache.LocalCache.get(LocalCache.java:3937)at   com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)at at   com.google.common.cache.LocalCache $ LocalLoadingCache.get(LocalCache.java:4824)     在   com.google.common.cache.LocalCache $ LocalLoadingCache.getUnchecked(LocalCache.java:4830)     在   com.google.inject.internal.FailableCache.get(FailableCache.java:48)     在   com.google.inject.internal.MembersInjectorStore.get(MembersInjectorStore.java:68)     在   com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:74)     在   com.google.inject.internal.ConstructorInjectorStore.access $ 000(ConstructorInjectorStore.java:29)     在   com.google.inject.internal.ConstructorInjectorStore $ 1。创建(ConstructorInjectorStore.java:37)     在   com.google.inject.internal.ConstructorInjectorStore $ 1。创建(ConstructorInjectorStore.java:33)     在   com.google.inject.internal.FailableCache $ 1.load(FailableCache.java:37)     在   com.google.common.cache.LocalCache $ LoadingValueReference.loadFuture(LocalCache.java:3527)     在   com.google.common.cache.LocalCache $ Segment.loadSync(LocalCache.java:2319)     在   com.google.common.cache.LocalCache $ Segment.lockedGetOrLoad(LocalCache.java:2282)     在   com.google.common.cache.LocalCache $ Segment.get(LocalCache.java:2197)     ... 31更多引起:java.lang.NoClassDefFoundError:   COM /谷歌/格里特/扩展/事件/ GitReferenceUpdatedListener $更新     at java.lang.Class.getDeclaredMethods0(Native Method)at   java.lang.Class.privateGetDeclaredMethods(Class.java:2615)at at   java.lang.Class.getDeclaredMethods(Class.java:1860)at   com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:688)     在   com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:380)     在   com.google.inject.internal.MembersInjectorStore.createWithListeners(MembersInjectorStore.java:93)     在   com.google.inject.internal.MembersInjectorStore.access $ 000(MembersInjectorStore.java:37)     在   com.google.inject.internal.MembersInjectorStore $ 1。创建(MembersInjectorStore.java:45)     在   com.google.inject.internal.MembersInjectorStore $ 1。创建(MembersInjectorStore.java:42)     在   com.google.inject.internal.FailableCache $ 1.load(FailableCache.java:37)     在   com.google.common.cache.LocalCache $ LoadingValueReference.loadFuture(LocalCache.java:3527)     在   com.google.common.cache.LocalCache $ Segment.loadSync(LocalCache.java:2319)     在   com.google.common.cache.LocalCache $ Segment.lockedGetOrLoad(LocalCache.java:2282)     在   com.google.common.cache.LocalCache $ Segment.get(LocalCache.java:2197)     ... 46更多引起:java.lang.ClassNotFoundException:   com.google.gerrit.extensions.events.GitReferenceUpdatedListener $更新     在java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)at   java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)at   java.security.AccessController.doPrivileged(Native Method)at   java.net.URLClassLoader.findClass(URLClassLoader.java:354)at   java.lang.ClassLoader.loadClass(ClassLoader.java:425)at   java.lang.ClassLoader.loadClass(ClassLoader.java:358)... 60多个

我不确定应该考虑修复它。

2 个答案:

答案 0 :(得分:1)

这看起来像是针对构建插件的API版本与Gerrit服务器的API版本之间的不匹配。

java.lang.NoClassDefFoundError: com/google/gerrit/extensions/events/GitReferenceUpdatedListener$Update

GitReferenceUpdatedListener.Update班级为removed from the API in Gerrit version 2.8

要解决此问题,首先应检查服务器运行的Gerrit版本,然后确保已针对具有相应版本的API构建插件。

答案 1 :(得分:0)

我按照说明操作,最后编译了插件,并在此处提交了两个更改:https://github.com/vadims/gerrit-owners/issues/6(查找2个分叉的仓库),它确实有效。

这很痛苦,但插件做得非常棒,值得付出努力!