12

Maven (v 3.3) で Eclipse Mars を使用しています。pom で依存関係を更新する (バージョンを変更する) と、プロジェクトを右クリックして [Maven] -> [プロジェクトの更新] を選択しても、Eclipse-Maven プロジェクトはそれを取得しません。コマンドラインでプロジェクトをビルドするときに表示されるコンパイルエラーがEclipse Javaエディターに表示されないため、これを知っています

mvn clean install

プロジェクトをワークスペースから削除して再インポートすると、正常に戻ります。ただし、これは面倒なプロセスです。Maven-Eclipse プロジェクトで pom の変更を自動的に検出し、プロジェクト ライブラリを適切に更新するにはどうすればよいですか?

そして、はい、「プロジェクト」メニューで、「自動的にビルド」がチェックされています。

4

5 に答える 5

24

プロジェクトを Eclipse にインポートするときは、Eclipse 独自の組み込み Maven サポート (別名、m2e) を使用します。mvn eclipse:eclipse(ご覧のとおり)最良の結果が得られないため、使用しないことをお勧めします。Maven はビルドおよび依存関係管理ツールであり、IDE ではありません。私の意見では、IDE 固有のものを管理することを期待するのはばかげています (Maven チームの考え方は異なり、Maven が IDE の管理を担当する必要があることは理解していますが、それはナンセンスです)。

そのため、システムでプロジェクトを使用できる場合は、Eclipse 固有のファイル (通常は.classpath.project、および folderのみ.settings) を削除します。これらのファイルは によって生成されたものmvn eclipse:eclipseであり、ここで説明する「適切な」インポート プロセスを妨げないようにします。次に、Eclipse 内で、[File] > [Import] > [Maven] > [Existing Maven Projects] を使用してプロジェクトをインポートします。これにより、pom が変更されたときに Eclipse ビルド パスが自動的に更新されるなど、Eclipse と Maven の間の統合が向上するはずです。

簡単なチェックとして、この方法でインポートを行った後、プロジェクトの [ビルド パス] の [ライブラリ] タブ ([プロパティ] ダイアログ内) にMaven Dependenciesというグループが表示されます。このような:

ここに画像の説明を入力

pom が変更されるたびに Eclipse プロジェクト構成を自動的に更新する場合は、Preferences > Mavenの下に (実験的な) 設定があります。ただし、これは望ましくない可能性があることに注意してください。この機能リクエストで述べたように、Eclipse プロジェクトの多くのものに触れるのは、やや時間がかかるプロセスです。すべての変更で自動的にそれを行うことpom.xmlは、価値があるよりも多くの問題を引き起こす可能性があります.

ここに画像の説明を入力

于 2016-03-17T15:14:43.623 に答える
0

Eclipse がクラスパスを更新しているはずです。そうでない場合、それは何かがうまくいかないことを意味します。

プロジェクトの pom.xml について詳しく知らなければ、何が問題なのかを正確に判断することは困難です。問題を解決するには、さらに多くの情報が必要になるかもしれませんが、暗闇の中で突き刺すだけです。

プロジェクトのルート フォルダーにある .project ファイルを開き、そこでビルダーとネイチャーの順序を確認します。プロジェクトの他の性質が原因で maven2Nature が失敗する可能性もあります。Maven の性質を上に移動し、それが役立つかどうかを確認します。

または、Eclipse は依存関係を更新しないと考えているかもしれません。これは、新しい依存関係があるはずのエラー インジケーターがプロジェクトに追加されないためです。その場合は、現在のプロジェクトを消去してみてください (project>clean...)。Eclipse の Maven は、依存関係が更新されたときに必ずしも完全な再構築をトリガーするとは限りません。

これでうまくいかない場合は、プロジェクトを閉じて開くと、再インポートするよりも早く問題が解決する可能性があります。

于 2016-03-14T10:48:01.830 に答える
0

あなたが書いたものはうまくいくはずです。これをチェックしましたか:

  • 端末からの「純粋」mvn installはPOMの変更を認識しますか?

  • 多分プラグインにバグがあり、いくつかの依存関係がキャッシュされておりtargetmvn clean install必要です

  • 新しいワークスペースでEclipseを実行し、そこにプロジェクトをインポートできます。このような奇妙な問題が発生した場合に役立つことがあります

  • を介して Maven プロジェクトを Eclipse にインポートする代わりにm2eclipse、古いものを介して Eclipse ファイルを作成し、mvn eclipse:eclipseその後何が起こるかを確認できます。

  • Maven プロジェクトを他の IDE (無料の IntelliJ Community Edition など) にインポートしようとするとうまくいきますか?

于 2016-03-18T16:16:02.177 に答える
-3

最後の手段として、現在の Eclipse インストールを削除して、新しいバージョンをインストールできます。複数のプラグインを追加すると、それらが互いに干渉して奇妙な動作を引き起こす可能性があります。その後、Maven プロジェクトをワークスペースにインポートせずに、新しいプロジェクトを作成し、持っていたファイルをコピーして貼り付けます。

于 2016-03-17T13:45:38.433 に答える