1. ホーム
  2. Java

ロンボク版問題による血の海を思い出せ

2022-02-21 04:25:06
<パス

質問の説明

  テスト環境のプロジェクトで、突然パッケージがエラーになり、"実引数と形式引数のリストの長さが異なる"。
関連するエラーメッセージ


[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/jenkins/.jenkins/workspace/test-wsbroker-wallet/wallet-bc-service/src/main/java/com/***/wallet/bc/model/***.java:[137 .11] constructor COLUMNS in enum com.***.wallet.bc.model.***.COLUMNS cannot be applied to given types;required: no arguments
found: java.lang.String
reason: actual and formal argument lists differ in length



  該当する中国語に訳すと、おおよそ次のようなメッセージになります。


[ERROR] /home/test/wsbroker-wallet/wallet-bc-service/src/main/java/com/wsbroker/***/bc/service/impl/***/.java:[91,25] Symbol not found
[ERROR] Symbol: method setCreatedTime(<nulltype>)
[ERROR] Location: variable bcUsdtSendTxFail of type com.wsbroker.***/.bc.model.***/
[ERROR] /home/test/***-wallet/***-bc-service/src/main/java/com/wsbroker/wallet/bc/model/BcUsdtSendTx.java:[198,11] Unable to set enumeration com.***. wallet.bc.model.***.COLUMNS constructor COLUMNS to the given type;
[ERROR] Required: no arguments
[ERROR] Found: java.lang.String
[ERROR] Reason: actual parameter list and formal parameter list are different lengths


質問の位置づけ

<スパン <スパン        <スパン <スパン <スパン <スパン <スパン <スパン <スパン Intellijのパッケージのコンパイルも問題なく、テスト環境の問題ですが、運用保守に鍋を捨てたいと思い始めましたが、他のプロジェクトは普通にコンパイルしています。そこで、私は別のクリーンなマシン上でjdk、maven、およびgitをインストールし、パッケージングのためのコードを引っ張ると、問題で顔に命中しました。
  何十回となくコードをチェックしたが、問題は見つからなかった。この時点で、エラーログを分析し、おそらくlombokの問題でset,getメソッドが生成されていないことを突き止めることができたのです。
  公開パッケージに誘導し、git commit logを確認すると、lombokのバージョンが"に更新されていることが確認できました。 1.18.16 "、ログ出力を参照してパッケージングプロセスは"maven -コンパイラ-プラグイン:3.8.1:コンパイル"言葉を持って、深刻な疑いが原因のバージョンの問題である。

問題解決

  lombok のバージョンを "1.18.8" に変更するとうまくいきましたが、なぜ "1.18.16" ではうまくいかなかったのかは、調査する必要がありそうです。

プロジェクトのバージョン情報

  • Springcloud > Greenwich.SR2
  • springboot > 2.1.7.
  • maven > 3.6.3
  • jdk > 1.8.0_241