Eclipse MarsとMaven(v 3.3)を使用しています。 pomの依存関係を更新する(バージョンを変更する)と、プロジェクトを右クリックして[Maven]-> [Update Project]を選択しても、Eclipse-Mavenプロジェクトはそれを選択しません。 Eclipseでコンパイルエラーが表示されないJavaコマンドラインでプロジェクトをビルドするときに表示されるJava $ ===
mvn clean install
ワークスペースからプロジェクトを削除して再インポートすると、正常に戻ります。ただし、これは面倒なプロセスです。 Maven-Eclipseプロジェクトを取得して、pomの変更を自動的に検出し、プロジェクトライブラリを適切に更新するにはどうすればよいですか?
はい、「プロジェクト」メニューで「自動的にビルド」がチェックされています。
プロジェクトをEclipseにインポートするときは、Eclipse独自の組み込みMavenサポート(別名、m2e)を使用します。 mvn Eclipse:eclipse
を使用しないことをお勧めします。これは、最良の結果が得られないためです(ご覧のとおり)。 MavenはIDEではなく、ビルドおよび依存関係管理ツールです。私の意見では、IDE固有のものを管理することを期待するのは馬鹿げています(Mavenチームは、MavenがIDEの管理を担当するべきだと違う考えを持っていますが、それはナンセンスです)。
システムでプロジェクトを使用できる場合は、Eclipse固有のファイル(通常は.classpath
、.project
、およびフォルダー.settings
のみ)を削除します。これらはmvn Eclipse:eclipse
によって生成されましたまた、ここで説明する「適切な」インポートプロセスの妨げにはなりません。次に、Eclipse内で、ファイル>インポート> Maven>既存のMavenプロジェクトを使用してプロジェクトをインポートします。これにより、pomが変更されたときにEclipseビルドパスを自動的に更新するなど、Eclipseとmavenの統合が改善されます。
簡単なチェックとして、その方法でインポートを実行した後、プロジェクトのビルドパスの[ライブラリ]タブ(プロパティ)にMaven Dependenciesというグループが表示されます。ダイアログ)。このような:
Eclipseプロジェクトの構成を、pomが変更されるたびに自動的に更新したい場合、Preferences>Maven。ただし、 この機能リクエスト で説明したように、Eclipseプロジェクトの多くの要素に触れる長いプロセスであることに注意してください。 pom.xml
の変更ごとに自動的にそれを行うと、それが価値以上のトラブルになる可能性があります。
Eclipseはクラスパスを更新する必要があります。そうでない場合、それは何かが間違っていることを意味します。
プロジェクトのpom.xmlについて詳しく知らなくても、問題が何であるかを正確に言うことは困難です。この問題を解決するには詳細な情報が必要な場合がありますが、暗闇の中で突き刺すだけです。
プロジェクトのルートフォルダーにある.projectファイルを開き、そこにあるビルダーと性質の順序を確認します。プロジェクトのその他の性質によってmaven2Natureが失敗する可能性もあります。 Mavenの性質を上げて、それが役立つかどうかを確認します。
あるいは、思考は、Eclipseが依存関係を更新しないということです。これは、新しい依存関係があるはずのエラーインジケーターをプロジェクトに追加しないためです。その場合は、現在のプロジェクトのクリーニングを試してください(project> clean ...)。 EclipseのMavenは、依存関係が更新されたときに必ずしも完全な再構築をトリガーするとは限りません。
これらのいずれも機能しない場合、プロジェクトを閉じたり開いたりすると、再インポートよりも迅速に問題を解決できる場合があります。
あなたが書いたものは、動作するはずです。これを確認しましたか:
ターミナルからの「純粋」mvn install
はPOMの変更を確認しますか?
多分いくつかのプラグインはバグがあり、いくつかの依存関係をtarget
にキャッシュし、mvn clean install
が必要です
新しいワークスペースでEclipseを実行し、そこにプロジェクトをインポートできます。そのような奇妙な問題の場合に役立つことがあります
m2Eclipse
を介してEclipseにMavenプロジェクトをインポートする代わりに、古いmvn Eclipse:eclipse
を介してEclipseファイルを作成して、次に何が起こるかを確認できます。
mavenプロジェクトを他のIDE(無料のIntelliJ Community Editionなど)にインポートしようとすると、うまく機能しますか?