Mavenの依存関係を使用するようにEclipseビルドパスを構成する方法


124

Mavenがプロジェクトの依存関係を管理するために提供する機能を利用したいと思います。Mavenがどのように機能するかについての私の簡単な理解は、必要なJARを取得し、これらのライブラリを使用してプロジェクトをビルドするということです。

現在、簡単なPOMファイルをテストとして設定しています。

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jamesgoodwin.test</groupId>
  <artifactId>com.jamesgoodwin.test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.0.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

依存関係を管理するために、通常はプロジェクトまたはJARをビルドパスに追加すると、プロジェクトをビルドできるようになります。

ただし、M2Eclipseを使用する場合、依存関係はビルドパスに自動的に追加されません。Mavenが依存関係を管理していることをEclipseに通知するための構成はありますか?

回答:


116

プロジェクトを右クリックすると、「maven」の下に「依存関係管理を有効にする」オプションがあるはずです。それでおしまい。


2
m2 eclipse:eclipseで作成されたプロジェクトをインポートする場合、m2eclipseはデフォルトではこれを行わないため、常に人がつまずくように見えます。
matt b

28
実際、私のプロジェクトではすでに有効になっています。おそらく、POMファイルを既存のプロジェクトに追加することを選択したためでしょうか。しかし、Maven>プロジェクト構成の更新を実行すると、問題が解決したようです。また、最終的に私がプロジェクトを修正できるツールバーを発見したのは、あなたの答えでした。多くの感謝
ジェームズ・グッドウィン

12
m2eclipseがインストールされているように見えても、右クリックメニューに「Maven」オプションがない場合はどうなりますか?
dfrankow

85
ああ、「設定」=>「Mavenプロジェクトに変換」はあなたの友達です!
dfrankow

2
@dfrankow "Configure" => "Convert to Maven Project"オプションが存在しない場合はどうなりますか?
vasilakisfil 2013年

67

あなたが実行する場合

mvn eclipse:clean

に続く

mvn eclipse:eclipse

もし.classpathあなたのために日食ファイルを準備するなら。つまり、これらのコマンドはコマンドラインから、つまりEclipseの外部からmavenに対して実行されます。


これは、クラスパス変数(M2_REPO)を使用して依存関係を参照することで機能し、m2eclipseを使用せず、プロジェクトで作業するときに追加された依存関係を追加するとは思わないことに注意してください。初期設定中
matt b

@matt b:依存関係が変更されるたびに、mvn eclipse:eclipseをやり直す必要があります。
Buhb

Buhbの発言に追加するには、コマンドラインでmnv eclipse:eclipseを実行し、pom.xmlにdepsを追加するたびにEclipseプロジェクトを更新します。
Binil Thomas

5
m2eclipseプラグインを使用する場合、これは必要ありません。
Pascal Thivent、2010年

3
私はm2eclipseプラグインを使用していて、既存のmavenプロジェクトをeclipseにインポートした後に問題が発生していました。やってmvn eclipse:cleanmvn eclipse:eclipse実際に私のために問題を修正しました。
aioobe

29

あなたがそれを言及したように私はあなたがm2eclipseを使用していると仮定しています。ただし、Eclipseでプロジェクトを作成したかどうかは不明なので、すべてのケースをカバーするようにします。

  1. Eclipseで「Java」プロジェクトを作成した場合(Ctrl + N> Javaプロジェクト)、[ パッケージ・エクスプローラー]ビューでプロジェクトを右クリックし[ Maven]> [依存関係管理を有効化]に移動します(最初のプロジェクト構造によっては、たとえば、ビルドパスのsrc/javaソースフォルダーに追加することにより、Mavenのそれと一致します)。

  2. Eclipseの下に「Mavenプロジェクト」を作成した場合(Ctrl + N> Mavenプロジェクト)、すでに「Maven対応」になっているはずです。

  3. Eclipseの外で(手動またはアーキタイプを使用して)Mavenプロジェクトを作成した場合は、Eclipseにインポートするだけ(パッケージエクスプローラービューを右クリックし、 [ インポート...]> [Mavenプロジェクト]を選択)すると、「Maven対応」になります。

ここで、依存関係を追加するには、プロジェクトを右クリックして[ Maven]> [依存関係の追加]を選択するか、pomを手動で編集します。

PS:m2eclipseを使用している場合は、maven-eclipse-pluginを使用しないでください。それは全く必要ありません、それは混乱するでしょう、それはいくつかの混乱を生成します。いいえ、本当に、自分が何をしているのか本当に理解していない限り、使用しないでください。


2
maven-eclipse-pluginが私の奇妙な未解決の依存関係エラーの原因であることがわかりました。ありがとう!
ヴォーン

1
公式サイトからダウンロードしたEclipseNeonを使用します。標準のJavaプロジェクトを作成した後、メニューにMavenオプションがありません。何かを個別にインストールする必要がありますか、それともすべてNeonでダウンロード済みですか?
Ewoks

@Pascal Thivent、Mavenプロジェクトをインポートしました。これに対する解決策を見つけることができません
Syed

19

これを.classpathファイルに追加します。

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
    </attributes>
</classpathentry>

どうも


1
ええ、ここ数年、手動でどこにでも追加する必要があります... EclipseプラグインにMavenの依存関係を自動的に認識させるように強制しないのですか?
かみそり

1
この解決策をありがとう。これでうまくいきました。.projectファイルと.classpathファイルを誤って削除しました。このソリューションは、クラスパスにMavenの依存関係を追加するために私のために働いた
タヒルMehmood

上記の.classpathファイルを自動的に生成するショートカットは、Project-> Maven-> Update Projectです。それ以外の場合は、Alt + F5
Venkateswara Rao

私も働いた。不足している依存関係のほとんどを解決しましたが、まだいくつかの問題があるので、どこかに小さなエラーがあるため、よりユーザーフレンドリーなソリューションが機能していないのではないかと思います(ただし、この動作は問題のデバッグに役立ちません...)
ゼノイド

14

プロジェクトを右クリックして構成> Mavenプロジェクトに変換

次に、プロジェクトのすべてのMaven関連メニューを確認できます。


最初にmvnプロジェクトを作成しなかった場合の正しい方法
Hannes Schneidermayer

10

私はこれが好きでした。

プロジェクトを右クリックします->設定-> Convert to maven project。プロジェクトを右クリックします-> maven->依存関係を追加します。


5

Eclipse(火星)に移動します。

プロジェクトのプロパティ-> Maven。「ワークスペースプロジェクトの依存関係を解決する」が無効になっていることを確認します


これは元の問題を解決しませんでしたが、私が数週間にわたって抱えてきた別の厄介な問題を解決しました-そのオプションを無効にした後、Mavenコマンドラインからのみ実行されていた私のプロジェクトは、Eclipse内で再び実行されます!ありがとうございました!
ビルHileman

4

Mavenまたは構成メニューは見つかりませんでしたが、問題を解決する次のボタンが見つかりました。

ここに画像の説明を入力してください


2

m2eclipseが正しくインストールされると、依存関係が自動的に追加されます。ただし、次のように入力してEclipseプロジェクトファイルを生成する必要があります。

mvn eclipse:m2eclipse

または、m2eclipseを使用しない場合:

mvn eclipse:eclipse

3
注意:バージョン2.8以降、maven-eclipse-pluginは「eclipse:m2eclipse」をサポートしなくなりました(理由/情報が見つからなかったため)
Wolkenarchitekt

1

いくつかの問題を引き起こすわずかなバリエーションがありました-1つのプロジェクト内の複数のサブプロジェクト。この場合、POMを含む各フォルダーに移動し、mvn eclipse:eclipseコマンドを実行してから、クラスパスエントリをプロジェクトのクラスパスファイルに手動でコピー/マージする必要がありました。


1

新しいEclipseバージョン(> = Mars)の場合は、プロジェクトを右クリック>構成> Mavenプロジェクトに変換


1

いくつかの理由で私の答えを追加します:

  • どういうわけか、記載されている回答のどれも直接私の問題を解決しませんでした。
  • Mavenで「依存関係管理を有効にする」が見つかりませんでした。2015年2月4日、水曜日にEclipse 4.4.2ビルドを使用しています。

私を助けたのは、「プロジェクトの更新」と呼ばれるMavenの下の別のオプションでした。それをクリックすると、このウィンドウが開き、「スナップショット/リリースの強制更新」というチェックボックスがあります。このチェックボックスの本当の目的は私が知っているものとは異なりますが、どういうわけかそれは依存関係の問題を解決しました。 ここに画像の説明を入力してください


1

それでも私の問題は解決しませんでした。しかし、私がしたことは、pom.xmlをクリックした場合、下部に「依存関係」という名前のタブがあります。このタブでは、依存関係と依存関係管理という2つのセクションに分かれています。依存関係セクションですべてのものを選択し、[追加]をクリックして依存関係管理コントロールの下に配置します。プロジェクトを閉じて再度開きます。


0

多分あなたはmaven-eclipse-pluginを調べることができますM2Eclipseの代わり。

そこで基本的にmaven-eclipse-plugin設定をpom.xmlに追加して実行するmvn eclipse:eclipseと、Eclipseに必要な.project.classpathファイルが生成されます。そうすると、Eclipseに正しいビルドパスができます。


eclipse:eclipseは不良で、Mavenに依存する代わりに、すべてのライブラリを1つずつ依存関係に追加します
かみそり

0

POMが命名規則に従っており、小文字ではなくpom.xmlPOM.xml

私の場合はすべて問題ありUpdate project configurationませんでしたが、Eclipseはまだ右クリックしようとすると文句を言い、POMを読み取れなかったと教えてくれました。名前を小文字に変更- pom.xmlからPOM.xml-そしてそれは働いた。


0

私もこの問題に会いました。に依存関係を追加すると、pom.xmlローカルフォルダーをチェックインしまし/Users/xyz/.m2/た。jarはすでにそこにダウンロードされていますが、Eclipseのビルドパスを追加できません。

私の日食バージョン:Mars.2リリース(4.5.2)

を右クリックしてプロジェクト > Mavenは > ワークスペースの解決を有効にします

そして、これは私の問題を解決しました。


0

標準のMavenプロジェクトとして構造化されていることを前提として、ここには特定のプロジェクトがないため、通常、作業中のプロジェクトから.classpathファイルをコピーできます。


0

これはEclipse Oxygen(4.7.0)で私のために働きました:

Project-> Maven-> Select Maven Profiles ...を右クリックして、Repository Proxyボックスをチェックし、OKを押します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.