web-dev-qa-db-ja.com

Mavenのクリーン、更新、インストール、およびEclipseのクリーン、更新、ビルド-一般的に正しい順序ですか?

相互依存のEclipseプロジェクトがいくつかあります。ワークスペースを構築しようとすると、複数の問題が発生します。おそらく、Mavenのクリーンアップ、更新、インストール、およびプロジェクトのクリーンアップ、更新、ビルドをすべて実行すると、問題が発生するはずです(私は、Eclipseですべてを[実行]メニューと[プロジェクト]メニューからそれぞれ実行しています)。

しかし、これらのアクションを実行するための最適な順序は何ですか?また、誰かがそれぞれの機能を簡単に説明できるので、いくつかをスキップして理解を深め、理解することができますか?

より具体的には、Maven Clean&Maven Installを実行すれば十分だと言われました。 Mavenインストールは「ビルド成功」で終了しますが、特定のプロジェクトでいくつかのクラスを実行しようとすると、「問題」タブでエラーが発生し、「メインクラスエクスポートを検出またはロードできませんでした」という厄介なエラーが発生します。 Project Cleanを数回実行してからProject Buildを数回実行してみると、エラーが発生する場合と発生しない場合があります。 Maven更新->すべてのプロジェクトを導入し、すべてのプロジェクトを選択する>更新(F5)ステップを選択するように勧められましたが、それらをいつ実行するか(どのクリーンアップ、インストール、またはビルド後)かわかりません。

これらのアクションを実行する方法の「一般的に正しい」順序はありますか?だから私がそれを実行し、いくつかのエラーが残っている場合、単に依存関係ではなく私のバージョン内で何かが間違っていることが明らかになりますか? RTC(ソフトウェア開発チームのコラボレーションツール))からプロジェクトをプルしましたが、同僚にはそのような問題はありませんが、最近プルしただけです。

8
alisa

特に私の場合、次の一連のアクションが機能しました。

  • プロジェクト-> [自動的にビルド]をオフにします
  • [変更を受け入れる]該当する場合
  • プロジェクト->クリーン
  • 実行->実行-> Mavenクリーン
  • 実行->実行-> Mavenインストール
  • プロジェクト->ビルドを自動的にチェック
  • [問題]タブにエラーが表示された場合:
    • すべてのプロジェクトを選択し、F5を更新
    • それでもエラーが発生する場合:
      • [問題]タブでエラーを手動で削除します(Eclipseが依存関係を更新していない可能性があります)。
      • すべてのプロジェクトを選択し、F5を更新
2
alisa

まず、mavenとEclipseは2つの異なるものであることを理解する必要があります。はい、Mavenプロジェクトに基づいてEclipseプロジェクトを構成するのに非常に優れたm2eプラグイン(Eclipseにバンドルされています)があります。しかし、Eclipseがめちゃくちゃになることがあります(ほとんどの場合、更新の問題が原因です)。

次に、 Mavenビルドライフサイクルの基本 について学習する必要がある場合があります。

組み込みのビルドライフサイクルには、デフォルト、クリーン、サイトの3つがあります。デフォルトのライフサイクルはプロジェクトのデプロイメントを処理し、クリーンライフサイクルはプロジェクトのクリーニングを処理し、サイトライフサイクルはプロジェクトのサイトドキュメントの作成を処理します。

だから基本的に:

  • cleanはクリーンライフサイクルのフェーズで、ターゲットディレクトリを削除します
  • installはデフォルトのライフサイクルのフェーズであり、以前のすべてのフェーズ(ソースの生成、コンパイル、テストの実行など)をトリガーするため、多くのことを行います。パッケージをターゲットディレクトリに置き、成果物をローカルリポジトリに置きます。

第三に、Eclipseについて。 「プロジェクト->自動的にビルド」オプションをチェックした場合は、ビルドを実行する必要はありません。 Eclipseがめちゃくちゃになると、m2eコマンド "Maven-> Update project"を実行してから更新を実行するだけで十分です。このコマンドは、.settingsフォルダー内のいくつかのファイルを再生成します。まれに、.settingsフォルダー内のすべてのファイルを自分で削除してから、「プロジェクトの更新」コマンドを実行する必要がありました。

結論:mvn clean install正常に機能しない場合Eclipse-> Refresh、機能しない場合Eclipse-> Maven- >プロジェクトの更新

最後のバージョンのEclipseとm2eプラグインの使用もお勧めします。

14
Pablo Lascano

Devonfw.comのベストプラクティスは、コマンドラインmavenとEclipseビルドを分離して分離することです。これは私の命を救った。手品は簡単で、ここにあります: https://github.com/devonfw/devon4j/blob/develop/pom.xml#L544

ところで:devonfwは学ぶべきたくさんの素晴らしいパターンを持っています。これは100万分の1にすぎません。

0
Jörg