2016-01-11 10 views
6

ザM2Eclipseホームページから解決のMavenの依存関係は、プラグインは、以下のことが可能であると述べている:ローカルのMavenリポジトリにインストールM2Eclipse:Eclipseワークスペース

せずEclipseワークスペースから

解決Mavenの依存関係

ドキュメンテーションが見つかりませんでしたので、この正確な意味と実行方法を理解できませんでした。私は特に、ワークスペース内のプロジェクトが2つの異なるjar(どちらもクラスの一部を含む)に対応する場合に興味があります。

+0

あなたの設定は何ですか?EclipseでMavenを使用している場合は、M2Eclipseをインストールする必要があります。そうしないと、作業できなくなります。 – Tunaki

+0

私は、M2Eclipseが私たちの役に立つツールであるかどうかを調べようとしています。私はまだ何も設定していない。 –

+0

実際には、「ワークスペース内のプロジェクトは2つの異なるjarに対応しています」ということについて質問していました。(ごめんなさい) – Tunaki

答えて

7

Eclipseワークスペース(M2Eを使用している場合)は、ローカルのMavenリポジトリとして機能します。チェックアウトしたすべてのMavenプロジェクトは、ローカルリポジトリにインストールした場合と同様に、依存関係として使用することができます。

例:プロジェクトAがlib Bバージョン1.0.0に依存し、バージョン1.0.0でlib Bのソースをチェックアウトすると、EclipseはBのワークスペースバージョンを使用してAをコンパイルできます。あなたのローカルリポジトリにlib Bをインストールする必要はありません。

これは、ライブラリに変更を加えて、自分の作業領域にもあるアプリケーションでテストする必要がある場合に特に便利です。

しかし、pom Aのlib Bとpom Bの宣言されたバージョンの依存関係のバージョンは、これが動作するためには正確に一致する必要があります。たとえば、Aのpom.xmlに次のものがあるとします。

<dependency> 
     <groupId>a.b.c</groupId> 
     <artifactId>B</artifactId> 
     <version>1.0.0</version> 
</dependency> 

バージョン1.0.0ではチェックアウトBが必要です。

あなたがBに変更を加える必要がある場合、あなたはおそらく(たとえば1.0.1-SNAPSHOT、)何か-SNAPSHOTにあなたの依存関係のバージョンを変更する必要がありますし、B.

そのバージョンをチェックアウトしますまた、Eclipseプロジェクトの「ワークスペース成果物を解決する」オプションをチェックして、これが機能するようにする必要があります。 (プロジェクトを右クリック - >プロパティ - > Maven - >依存関係をワークスペースプロジェクトから解決)

Eclipseがインストールされているバージョンリモートリポジトリ)、pom.xmlエディタの[依存関係]タブを確認します。 "通常の"依存関係はjarアイコンで表示され、ワー​​クスペースで解決された依存関係(lib Bなど)はEclipseプロジェクトアイコンで表示されます。

+0

これはかなり便利です! –

2

M2Eclipseは、プロジェクトがまだローカルMavenリポジトリ(コマンドmvn install)にインストールされていない場合でも、ワークスペース内の開いているプロジェクトのMaven記述子(pom.xml)を読み取り、アーティファクトを解決します。

たとえば、2つのプロジェクトAとBがあります。AはBに依存します。 両方のプロジェクトで作業していて、両方がワークスペースで開かれている場合。プロジェクトAの依存関係を解決すると、Eclipseは自動的にプロジェクトBをビルドします。したがって、プロジェクトAを実行すると、EclipseはプロジェクトBの最新バージョンを使用していることを確認します。

Mavenを直接使用するプロジェクトAを実行するために、MavenはあなたのローカルリポジトリからプロジェクトBのバージョンを取得します。したがって、Aを実行して最新のバージョン(mvn install B)を取得する前に、プロジェクトBをインストールする必要があります。

関連する問題