ロンボク版問題による血の海を思い出せ
質問の説明
テスト環境のプロジェクトで、突然パッケージがエラーになり、"実引数と形式引数のリストの長さが異なる"。
関連するエラーメッセージ
[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
関連
-
実行中にEclipseがポップアップする A Java Exception has occurred
-
executeQuery()でデータ操作文が発行できない。解決方法
-
プロジェクトの依存関係を解決できない。
-
Uncaught ReferenceError: は定義されていません。
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
-bash: java: コマンドが見つからない 解決方法
-
配列定数は初期化子でのみ使用可能です。
-
WatchDog + Redisによる分散ロック
-
コレクション - PriorityQueueソースコード解析
-
Prologでは、コンテンツは許可されていません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
型に解決できない エラー解決
-
無効な文字定数
-
Junitのユニットテストはjava.lang.Testを報告します。
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
Javaがテキストファイルを読み込む
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
java send https request prompt java.security.cert.について。
-
ApiModel と @ApiModelProperty の使用法
-
Java上級(XLVI) ArrayList、Vector、LinkedListの類似点と相違点を簡単に説明できる。