【发布时间】:2013-07-15 09:38:12
【问题描述】:
我在使用 Jenkins 1.520 时遇到问题,并且有一个关于序列化 ID 的奇怪异常。
我在 Jenkins 中有一个 maven 项目,它首先从 subversion 中检查代码,然后运行“mvn clean install”,最后将生成的战争部署到另一个预生产服务器。
我第一次运行这个项目时一切正常,但在第一次执行后我遇到了这个异常:
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
如您所见,重点是“本地类不兼容:流 classdesc serialVersionUID = -647770169695782116,本地类 serialVersionUID = 1”。预期相同时不同serialVersionUID的冲突。
我一直在 jenkins jira 和此处阅读有关此问题的信息,但没有人对此有真正的解决方案。只有有人谈论降级版本的詹金斯。
我认为可能是pom.xml中指定的版本和jenkins服务器版本之间的java版本冲突,但两者都使用jdk 1.7。那么可能是一个詹金斯错误?
有什么建议吗?
谢谢!
解决方案:最终将版本从 1.520 降级到 1.509.2(长期支持)对我们有用。
【问题讨论】:
-
您的 Jenkins 是独立安装还是有一些从属设备?
-
安装它的人告诉我,它是 Red Hat Linux 中的独立安装(包括 tomcat),使用命令“yum install Jenkins”
标签: java maven deployment jenkins continuous-integration