Jenkins问题:通过比较serialVersionUID而导致本地类不兼容

3

我在使用Jenkins 1.520时遇到了问题,出现了关于序列化ID的奇怪异常。

我在Jenkins中有一个Maven项目,首先从Subversion检出代码,然后运行“mvn clean install”,最后将生成的war文件部署到另一台预发布服务器上。

第一次执行此项目时一切正常,但在第一次执行之后,我遇到了这个异常:

ERROR: Failed to parse POMs
java.io.InvalidClassException: hudson.maven.PlexusModuleContributor$1; local class incompatible: stream classdesc serialVersionUID = -647770169695782116, local class serialVersionUID = 1
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:604)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at hudson.remoting.UserRequest.deserialize(UserRequest.java:182)
at hudson.remoting.UserRequest.perform(UserRequest.java:98)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Finished: FAILURE

如您所见,问题是“本地类不兼容:流类描述符 serialVersionUID = -647770169695782116,本地类 serialVersionUID = 1”。期望相同的serialVersionUID存在不同的冲突。

我已经在jenkins jira和这里阅读了有关此问题的信息,但没有人真正提供解决方案。只有有人谈论降级jenkins版本。

我认为可能是pom.xml中指定的版本与jenkins服务器版本之间的Java版本冲突,但两者都使用jdk 1.7。那么这可能是一个jenkins bug吗?

有什么建议吗?

谢谢!

解决方案:最终将版本从1.520降级到1.509.2(长期支持)对我们起作用。


你的Jenkins是独立安装还是有一些从机? - Guillaume Darmont
安装它的人告诉我,在Red Hat Linux中使用命令“yum install Jenkins”进行独立安装(包括tomcat)。 - Emilio
1个回答

2

谢谢Guillaume,几个小时前我看到那张工单了,一直在尝试寻找切换版本的替代方案,但也许现在这是唯一的选择..我会再等等看,说不定还有什么技巧 ;) - Emilio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接