IntelliJ の「すべての Maven プロジェクトを再インポート」ボタンはどのように機能しますか? 質問する

IntelliJ の「すべての Maven プロジェクトを再インポート」ボタンはどのように機能しますか? 質問する

IntelliJ の「すべての Maven プロジェクトを再インポート」ボタンは実際にどのように機能しますか?

私がこれを質問しているのは、IntelliJの再インポートボタンの動作が違うmvn引数付きでコマンドを実行する場合よりも時間がかかります-Uが、その理由はよくわかりません。

ベストアンサー1

ローカルリポジトリとリモートリポジトリの部分が抜けていると思います。

これを実行すると、mvn -UMaven は会社の Nexus または Maven リポジトリとなるリモート リポジトリからすべてのライブラリをダウンロードするように強制されます。これを実行する場合-Uと実行しない場合の主な違いは、ローカル SNAPSHOT jar がリモート SNAPSHOT jar で上書きされることです-U。ローカル SNAPSHOT jar はインストールから取得され、リモート SNAPSHOT jar はデプロイ コマンドから取得されます。

再輸入で混乱が起きるでしょう。再輸入リモート jar の代わりにローカル jar、特に SNAPSHOT jar をロードします。Maven メニューでスナップショットの強制更新を有効にすると、-UIntelliJ でスイッチが有効になります。

また、システム Maven および IntelliJ Maven で同じ .m2 ディレクトリを共有していることを再確認してください。これはユーザー設定ファイルで確認でき、コマンドライン Maven と比較できます。実行してmvn -X設定セクションを確認してください。

[DEBUG] Reading global settings from /usr/local/Cellar/maven/3.3.9/libexec/conf/settings.xml
[DEBUG] Reading user settings from /Users/xbaran/.m2/settings.xml
[DEBUG] Reading global toolchains from /usr/local/Cellar/maven/3.3.9/libexec/conf/toolchains.xml
[DEBUG] Reading user toolchains from /Users/xbaran/.m2/toolchains.xml
[DEBUG] Using local repository at /Users/xbaran/.m2/repository

ここに画像の説明を入力してください


将来の読者への質問者からのメモ

この回答では再インポート ボタンの動作が十分に説明されていなかったので、後世のためにここで私の観察結果を追加します。

IntelliJ のキャッシュ (つまり、.idea フォルダ) に何か問題があるようです。mvn clean install -Uターミナルでの使用はここで説明されているように機能しますが、IntelliJ IDE には影響しません。欠落しているシンボルは、欠落していると引き続き表示されます。ただし、「マジック再インポート ボタン」を押すと、欠落しているシンボルは正常に解決されます。

私はそう推測するしかない再インポートボタンは基本的にIntelliJに自身のキャッシュを更新するよう指示するものである。そのため、動作に違いが生じます。

おすすめ記事