我遇到了Jenkins 1.520的問題和關於序列化ID的奇怪異常。Jenkins問題:通過比較serialVersionUID不兼容本地類
我有一個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
正如你所看到的,關鍵是「局部類不兼容:流classdesc的serialVersionUID = - 647770169695782116,本地類serialVersionUID = 1「。不同的serialVersionUID衝突預計會相同。
我一直在jenkins jira和這裏閱讀關於這個問題,但沒有人有這個真正的解決方案。只有有人談論降級jenkins版本。
我想也許它是在pom.xml中指定的版本和jenkins服務器版本之間的java版本衝突,但都使用jdk 1.7。也許詹金斯錯誤呢?
有什麼建議嗎?
謝謝!
解決方案:最終將版本從1.520降級到1.509.2(長期支持)適用於我們。
你的Jenkins是獨立安裝還是你有一些奴隸? –
安裝它的人告訴我,它是在Red Hat Linux中的一個獨立安裝(包括tomcat),使用命令「yum install Jenkins」 – Emilio