IDEA 自体のエラーをトラブルシューティングするにはどうすればよいですか? | IntelliJ IDEA 2023.1.4 がプロジェクト Maven モジュールを更新できない問題を例に挙げます。

この問題は 2023 年 7 月 26 日に発生しましたが、その時点ではまだ IDEA 2023.1.4 であったため、記事はまだ完成しておらず、IDEA 2023.2 は 7 月 27 日に自動的に更新されました。この問題は解決されると推定されています。
したがって、この記事では、IDEA 独自のエラー レポートのトラブルシューティング方法についてのみ説明します。

回避・解決策

まず問題に対処する方法について話しましょう。

IDEA 設定は、組み込み Maven を使用するように Maven ラッパーから変更されました。
ここに画像の説明を挿入

トラブルシューティングの手順

Maven プロジェクト モジュールが調整された後、IDEA は新しいモジュールを正しく識別しません

プロジェクトの Maven モジュールにいくつかの調整があり、新しいデータベース モジュールがフィクスチャの下に追加されます。通常、IDEA が新しいモジュールを自動的に認識し、削除されたモジュールを自動的に削除するのは当然です。ただし、新しく追加されたデータベース モジュールはソース コードに追加されておらず、削除されたモジュールはモジュール リストに残っています。
ここに画像の説明を挿入

Maven コマンドを使用してインストールするのは正常ですが、IDEA がプロジェクトをビルドするときに、パッケージやクラスが見つからないなどのコンパイル エラーが発生します。
ここに画像の説明を挿入
データベース モジュールの pom.xml ファイルを確認してください。エラーは見つかりませんでした。(そうしないと、Maven インストールの実行に問題が発生します)

IDEA が「すべての Maven プロジェクトを再ロード」を実行しようとします
ここに画像の説明を挿入

実行後も問題は解決されませんでしたが、ビルド ウィンドウにエラーが報告されました。

ここに画像の説明を挿入
このエラーには詳細がありません。

キャッシュをクリアするなどの方法を試しても問題は解決できません。
ここに画像の説明を挿入

IDEA がエラーを報告しましたが、問題は解決されていないため、具体的なエラーが何であるかを知る方法を見つける必要があります。

IDEA ログを確認する

IDEA ログを検索するにはさまざまな方法があり、[ヘルプ] メニューから直接開くことも、[アクション] ウィンドウから移動することもできます。
ここに画像の説明を挿入

Linux では IDEA ログを直接追跡できますが、他のプラットフォームでは IDEA ログ ファイルを手動で開く必要がある場合があります。
ここに画像の説明を挿入

[ビルド] ウィンドウでスローされた例外を検索しjava.lang.reflect.InvocationTargetException、ログで完全な情報を見つけます。

2023-07-26 16:31:47,659 [  59616]   INFO - #o.j.i.m.p.MavenProjectsProcessor - [maven import] MavenProjectsProcessorReadingTask took 3303ms
2023-07-26 16:31:47,765 [  59722]   WARN - #o.j.i.maven - java.lang.reflect.InvocationTargetException
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at org.jetbrains.idea.maven.server.MavenRemoteObject.wrapToSerializableRuntimeException(MavenRemoteObject.java:28)
	at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.<init>(Maven3XServerEmbedder.java:239)
	at org.jetbrains.idea.maven.server.Maven36ServerEmbedderImpl.<init>(Maven36ServerEmbedderImpl.java:8)
	at org.jetbrains.idea.maven.server.Maven36ServerImpl.createEmbedder(Maven36ServerImpl.java:22)
# 省略部分链路
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.<init>(Maven3XServerEmbedder.java:229)
# 省略部分链路
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	... 1 more
Caused by: java.io.FileNotFoundException: The specified global settings file does not exist: /home/wuweijie/conf/settings.xml
	at org.apache.maven.cli.configuration.SettingsXmlConfigurationProcessor.process(SettingsXmlConfigurationProcessor.java:117)
	at org.apache.maven.cli.MavenCli.configure(MavenCli.java:1169)
	at org.apache.maven.cli.MavenCli.loadCoreExtensions(MavenCli.java:758)
	at org.apache.maven.cli.MavenCli.container(MavenCli.java:633)
	... 24 more

エラーの理由は、Maven が path にある構成ファイルを読み取ろうとしているが/home/wuweijie/conf/settings.xml、 pathconfディレクトリが存在せず、.m2ディレクトリの外に Maven 構成を配置したことがないことである可能性があります。

Maven 構成を確認する

プロファイルは指定されていません。
ここに画像の説明を挿入

使用にはチェックが入っていますが.mvn/maven.confg、パスファイルが存在しません。
ここに画像の説明を挿入

それでは、IDEA はどこで存在しないパスを取得したのでしょうか?

IDEA の YouTrack を取得する (GitHub の問題と同様)

実際に同じ問題が報告されていることが判明しており、2023.1.5 と 2023.2 で解決されています。

https://youtrack.jetbrains.com/issue/IDEA-322338/maven-reimport-fails-with-java.io.FileNotFoundException-The-specified-global-settings-file-does-not-exist-conf-settings。 XML

ここに画像の説明を挿入

まとめ

実際、IDEA をチェックする問題自体は通常のものとあまり変わりません。

  • ログを確認して具体的な理由を見つけてください。
  • 問題を確認して、同様の問題または解決策があるかどうかを確認します。同様の問題がない場合は、新しい問題を提起してください。
  • 興味のある方はご自身で詳しく調べてみてください。

おすすめ

転載: blog.csdn.net/wu_weijie/article/details/131942527