Mavenマルチプロジェクトの「シンボルが見つかりません」問題を解決します



Solve Thecannot Find Symbolproblem Maven Multi Project



最近、私はマイクロサービスプロジェクトに取り組んでいます。 10を超えるMavenプロジェクトがあります。今日、サービスの1つをjarパッケージにしたいのですが、mvn clean installとして実行した後、次のエラーが表示されます。
画像
一般的に言えば、3つの理由があります。
1.プロジェクトのエンコード形式が統一されていない可能性があります。
2.プロジェクトのエンコードに使用されるJDKのバージョンが統一されていない可能性があります。
3. Pom依存関係の問題、この依存関係はパッケージを追加しない依存関係である可能性があります。集約プロジェクトの場合、他のモジュールの依存関係を追加しないか、他のモジュールの依存関係を追加しない可能性がありますが、依存モジュールはにパッケージ化されていません。地元の倉庫など

Mavenエラーが発生した場合:シンボルが見つかりません。通常、最初の反応はEclipseプロジェクトを実行することです->クリーン…->すべてのプロジェクトをクリーンアップし、次にmavenクリーンを実行してプロジェクトをクリーンアップし、それでも解決できない場合は再試行しますそれから見下ろします。



それが最初の問題である場合:プロジェクトのコーディング形式が統一されていない
この構成はpom.xmlファイルに追加できます
画像

プロジェクトのエンコーディングをUTF-8に設定しますが、ソースバージョンとターゲットバージョンに注意してください。これについては以下で説明します。



2番目の質問の場合:プロジェクトのコーディングに使用されるJDKのバージョンが統一されていません

1.まず、上記のコード行のエンコーディングであるpom.xmlファイルに設定されているjdkバージョンを確認します。sourceはサポートされているjdkバージョンを示し、targetはプロジェクトのパッケージ化後のjdkバージョンを示します。

2.プロジェクト自体のjdkバージョンを確認し、プロジェクトの右ボタン->ビルドパス->ビルドパスの構成...をクリックして、プロジェクトのjdkバージョンを設定します。
画像
3.コンパイラのバージョンを確認します。通常、このバージョンはプロジェクトによってデフォルトで設定されているjdkバージョンと同じですが、プロジェクトのプロパティを確認して右クリックすることをお勧めします-> javaコンパイラ



実際、チェックバージョンは主に最初の2つのステップであり、1つはpom.xml構成であり、もう1つはプロジェクト自体に設定されたjdkバージョンです。最後の2つは実際に確認できます。コンパイルされたバージョンは通常、プロジェクトで設定されたデフォルトのjdkバージョンと同じです。 、およびtomcatのjdkバージョンが正しく設定されていないため、問題はシンボルエラーではありません。 (Maven Webプロジェクトを初めて開発するときに、jdkが正しく設定されていませんでした。その結果、プロジェクトの開始後、ブラウザーを開いてログインした後、いくつかのエラー例外が発生しました。そのとき、jreが使用され、 jdkは使用されませんでした。ここで、開発を行うのが最善であることを思い出します。jdkを使用するときはjreを使用しないでください。一部のプロジェクトではjre環境で問題が発生し、jdkにはjreにな​​い開発ツールがいくつかあります)。

3番目のケースの場合:Pom依存関係の問題
次に、注意深くチェックする必要があります。Mavenの問題は、pomファイルの構成とその依存関係の一部にあります。最も単純なケースは、対応するjarパッケージの依存関係を構成していない場合です。この場合、対応するjarパッケージの依存関係をpom.xmlに追加するだけで済みます。集約プロジェクトの場合、プロジェクトが他のプロジェクトに依存している可能性があります。プロジェクトpom.xmlで他のプロジェクトの依存関係を構成します。同時に、このプロジェクトをコンパイルする前に、依存している他のプロジェクトをローカルリポジトリにパッケージ化する必要があります。そうしないと、この依存関係は無効になります。
私の問題は、依存パッケージがローカルリポジトリにないか、ローカルリポジトリのパッケージが最新バージョンではないため、新しく追加されたコードが認識されないことです。その後、すべてのコードをre-mvn cleaninstallします。このプロジェクトが依存しているjarパッケージで、少し面倒です(コードのコンパイル後にローカルリポジトリのjarパッケージが置き換えられなかった理由が今までわかりませんでした。関連しているかどうかはわかりません)このプロジェクトに。、私はガイドする偉大な神を理解したいと思っています))とにかく、問題は解決されました、私はまだ非常に幸せです。
画像

シンボルが見つからないMavenエラーの問題は、基本的に上記の状況です。この記事は参照のみを提供できます。上記の3つの状況に基づいて導き出された他の状況も、シンボルが見つからないというエラーにつながる可能性があります。この文はそれをゆっくり見つけるために大きな男を必要とします。