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に認識させるために、これを構成する必要がある場所はありますか?
プロジェクトを右クリックした場合は、「maven」の下に「依存関係管理を有効にする」オプションがあるはずです。それでおしまい。
実行した場合
mvn Eclipse:clean
に続く
mvn Eclipse:eclipse
あなたのためにEclipseの.classpath
ファイルを用意するでしょう。すなわち、これらのコマンドはコマンドラインからのmavenに対して、すなわちEclipseの外部で実行されます。
私はあなたがそれを述べたようにあなたがm2Eclipseを使っていると思います。ただし、Eclipseでプロジェクトを作成したかどうかは明確ではないので、すべてのケースを網羅しようと思います。
Eclipseで "Java"プロジェクトを作成した場合(Ctrl + N> Javaプロジェクト)、Package Explorerビューで右クリックプロジェクトを表示して、---に移動します。Maven> Dependency Managementの有効化(初期のプロジェクト構造によっては、ビルドパスのソースフォルダにsrc/Java
を追加するなどして、Mavenのものと一致するように変更することもできます)。
Eclipseで「Mavenプロジェクト」を作成した場合(Ctrl + N> Mavenプロジェクト)、それはすでに「Maven対応」になっているはずです。
MavenプロジェクトをEclipseの外部で(手動またはアーキタイプを使って)作成した場合は、単純にEclipseにインポートします(右クリック the Package Explorer表示してImport ...> Maven Projects)を選択すると、 "Maven ready"になります。
依存関係を追加するには、右クリックプロジェクトを選択してMaven> Add Dependency)を選択するか、pomを手動で編集します。
シモンズ:あなたがm2Eclipseを使用している場合は maven-Eclipse-plugin を使用しないでください。それは絶対に必要ではありません、それは混乱を招くでしょう、それはいくらかの混乱を生み出すでしょう。いいえ、本当に、自分がしていることを本当に知っていない限り、使用しないでください。
プロジェクトを右クリックして設定> Mavenプロジェクトに変換
その後、あなたはあなたのプロジェクトのためのすべてのMaven関連メニューを見ることができます。
これを.classpathファイルに追加してください。
<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
THX
私はこんな感じでした。
プロジェクトを右クリックして - > configure - > mavenプロジェクトに変換してください。プロジェクトを右クリック - > maven - >依存関係を追加.
Eclipse(Mars)では、次のようにします。
プロジェクトのプロパティ - > Maven 「ワークスペースプロジェクトからの依存関係の解決」が無効であることを確認してください。
私はMavenや設定メニューを見つけられませんでしたが、私の問題を解決する次のボタンを見つけました:
M2Eclipseが正しくインストールされると、自動的に依存関係を追加するはずです。ただし、次のように入力してEclipseプロジェクトファイルを生成する必要があります。
mvn Eclipse:m2Eclipse
あるいは、m2Eclipseを使用しない場合は、
mvn Eclipse:eclipse
それのどれも私の問題を解決しなかった。しかし、pom.xmlをクリックすると、下部に依存関係という名前のタブがあります。このタブでは2つのセクションに分かれています。1つは依存性と呼ばれ、もう1つは依存性管理と呼ばれます。依存関係セクション内のすべてのものを選択し、「追加」をクリックして依存関係管理の管理下に入ります。プロジェクトを閉じて再度開きます。
新しいEclipseバージョン(> = Mars)の場合は、プロジェクトを右クリック>構成> Mavenプロジェクトに変換
私はいくつかの問題を引き起こすわずかな変化を持っていました - 1つのプロジェクト内の複数のサブプロジェクト。この場合、POMを含む個々のフォルダに移動し、mvn Eclipse:eclipseコマンドを実行してから、手動でクラスパスエントリを自分のプロジェクトクラスパスファイルにコピーまたはマージする必要がありました。
POMが命名規則に従い、小文字でpom.xml
およびNOT POM.xml
と命名されていることを確認してください。
私の場合、すべてが正しかったのですが、右クリックしてUpdate project configuration
を実行しようとしたときにEclipseがまだ不満を言っていました - POMを読み取ることができないと私に言った。名前を小文字のpom.xml
からPOM.xml
に変更しましたが、うまくいきました。
私もこの問題に出会いました。 pom.xml
に依存関係を追加するとき、私はローカルフォルダー/Users/xyz/.m2/
をチェックインし、jarはすでにそこにダウンロードされていますが、Eclipseのビルドパスを追加することはできません。
私のEclipseバージョン:Mars.2 Release(4.5.2)
プロジェクトを右クリック> Maven> ワークスペース解決を有効にする
そして、これで私の問題は解決しました。
標準のMavenプロジェクトとして構造化されていると想定した場合、ここで具体的なプロジェクトは存在しないため、通常は作業中のプロジェクトから.classpathファイルをコピーできます。
たぶんあなたはM2Eclipseの代わりに maven-Eclipse-plugin を調べることができます。
そこでは、基本的にpven.xmlにmaven-Eclipse-plugin設定を追加してから、mvn Eclipse:eclipse
を実行してEclipseに必要な.project
および.classpath
ファイルを生成します。そうすれば、Eclipseで正しいビルドパスが得られます。
これはEclipse Oxygen(4.7.0)で私のために働きました:
[プロジェクト] - > [Maven] - > [Mavenプロファイルの選択...]を右クリックし、[リポジトリプロキシ]ボックスをオンにして[OK]を押します。