3

Jenkins 1.520 に問題があり、シリアライゼーション ID に関する奇妙な例外があります。

最初にSubversionからコードをチェックアウトし、次に「mvn clean install」を実行し、最後に生成されたwarを別の本番前サーバーにデプロイするJenkinsのMavenプロジェクトがあります。

このプロジェクトを初めて実行したときはすべて問題ありませんでしたが、最初の実行後、次の例外が発生しました。

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 の競合。

私はジェンキンス・ジラとここでこの問題について読んできましたが、誰もこれに対する本当の解決策を持っていません. ジェンキンスのバージョンのダウングレードについて話しているのは誰かだけです。

pom.xmlで指定されたバージョンとjenkinsサーバーのバージョンのJavaバージョンの競合ではないかと思いましたが、どちらもjdk 1.7を使用しています。多分ジェンキンスのバグですか?

なにか提案を?

ありがとうございました!

解決策 : 最後に、バージョンを 1.520 から 1.509.2 (長期サポート) にダウングレードするとうまくいきます。

4

1 に答える 1

2

まあ、これは既知の問題のようです: https ://issues.jenkins-ci.org/browse/JENKINS-18533を参照してください

最新バージョンの Jenkins が必要ない場合は、LTS (Long Term Support)バージョンの Jenkins に切り替えることをお勧めします。これらのバージョンは、最新リリースのバグを追跡する時間がない (またはうらやましい) 場合に、実稼働サーバーに必要な安定性を確保します。

于 2013-07-15T10:40:03.270 に答える