web-dev-qa-db-ja.com

ビルドパスEclipseに「Maven Managed Dependencies」ライブラリを追加する方法

Mavenプロジェクトを作成し、MavenのプロジェクトのビルドパスにすべてのEclipse依存関係を追加します。プロジェクトのプロパティダイアログでJava Build Path> Add Library> Maven Managed Dependency> Nextに移動すると、「Maven Project Setting」を使用してMaven依存関係解決を構成するように求められます。

私の質問は、現在のビルドパスにMaven依存関係を追加する方法ですか?

61
Amit Patel

コマンドラインタイプから:

mvn Eclipse:eclipse

これにより、pom.xmlにあるすべての依存関係がEclipseに追加されます...

ただし、1つだけステップを実行する必要がある前に、これらのいずれも実行していない場合。

Eclipseを閉じて、シェルから次のコマンドを実行します。

mvn -Declipse.workspace=<Eclipse workspace> Eclipse:add-maven-repo

サンプル:

mvn -Declipse.workspace=/home/ft/workspaces/wksp1/ Eclipse:add-maven-repo
47
ftravers

m2e がインストールされていて、プロジェクトが既にMavenプロジェクトであるが、Mavenの依存関係がまだない場合、私にとって最も簡単な方法は

  • プロジェクトを右クリックし、
  • メイヴン、
  • プロジェクトを更新...

Eclipse screenshot

35
schnatterer

SpringSource Tool Suiteを使用しても同じ問題が発生します。コマンドラインから正常に実行された既存のMavenプロジェクトをインポートしていました。ただし、インポート-> Maven->既存のMavenプロジェクトを使用してプロジェクトをインポートした場合、プロジェクトはインポートを正しくインポートせず、maven管理依存ライブラリをビルドパスに追加できませんでした。

コマンドラインからmvn installを実行すると、プロジェクトは正常にビルドされました。 mvn Eclipse:eclipseを実行してからSTSにインポートした場合、すべてが期待どおりに機能しましたが、もちろん、pomを更新するたびにこれを再実行する必要がありましたが、これは望ましくありませんでした。

mvn Eclipse:eclipseを実行し、.classpathを手動で更新してEclipse:eclipseによって追加されたM2_REPO依存関係を削除し、m2Eclipse依存関係エントリを追加することで回避しました。

<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
  <attributes>
    <attribute name="org.Eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
  </attributes>
</classpathentry>

次に、既存のMavenプロジェクトをインポートしましたが、期待どおりに機能しました。

これはハックであり、m2Eclipseで作業するときにEclipse:ecpliseを実行することで他にどのような結果が生じるかわかりません。しかし、少なくとも、プロジェクトをコンパイルして、コーディングできるようになりました。


EDIT 1/4/201

上記の回避策は一時的に機能しますが、マイナスの副作用は発見しませんでした。しかし、私はこの問題を数回経験しており、そのたびに、mavenが受け入れるがm2Eclipse barfsの一部のセクションがあるという問題があります。

したがって、プロジェクトを正常に管理できるようになるまで、pomの一部を1つずつ削除することをお勧めします。 mavenを実行し続ける->各pomの編集後、設定が正しく機能するまで設定を更新します。通常、プラグイン構成タグブロックを一度に1つずつ削除し、最も疑わしい(つまり、最も複雑な)ブロックから始めます。

それが適切にmavenizeしたら、pomを元に戻すことができ、それでも期待どおりに動作するはずです。

実行した後、問題のある構成を調査して、「適切な」修正が何であるかを見つけようとします(とにかくm2Eclipseによると)。

うまくいけば、このアプローチは、ハッキングの回避策に落ち着くのではなく、永続的な解決策につながることを願っています!

11
Marquee

Pom.xmlで定義されているパッケージング戦略が「pom」ではないことを確認してください。それは「jar」または他のものでなければなりません。それを行ったら、プロジェクトを右クリックして更新し、Maven-> Update Project ...に移動します。

10
Pedro Madrid
  • M2Eプラグインをインストールします。
  • プロジェクトを右クリックし、[構成]-> [Mavenプロジェクトに変換]を選択します。

enter image description here

  • 次に、pom.xmlファイルがプロジェクトに表示されます。 pom.xmlをダブルクリックし、[依存関係]タブを選択して、プロジェクトが依存するjarを追加します。
7
smwikipedia

M2Eclipse をインストールし、EclipseでプロジェクトをMavenプロジェクトとして開くことができます。必要な構成とエントリが作成されます。

これは、pomのその後の更新にも役立ちます。 Maven Eclipseプラグインでは、変更ごとにEclipse構成を手動で再生成する必要があります。

6
Raghuram

Maven-> Update Projectが機能しない場合これらは私が宗教的に従うステップです。 Eclipseからプロジェクトを削除します(ワークスペースからプロジェクトを削除しないでください)。Eclipseを閉じてコマンドラインに移動し、これらのコマンドを実行します。

mvn Eclipse:clean
mvn Eclipse:eclipse -Dwtpversion=2.0

Eclipseを開き、既存のMavenプロジェクトをインポートします。プロジェクトにMaven依存関係が表示されます。

これがうまくいくことを願っています。

2
Sabarish

問題を理解できました。 Eclipseの起動時に次の警告が表示されました。

The Maven Integration requires that Eclipse be running in a JDK, because a number of Maven core plugins are using jars from the JDk.

Please make sure the -vm option in Eclipse.ini is pointing to a JDK and verify that
Installed JRE's are also using JDK installs

Eclipse.iniファイルを変更し、以下を追加してEclipseを再起動しました

-vm
C:/Program Files/Java/jdk1.6.0_21/bin/javaw.exe

これで、Javaビルドパスに「Maven Dependency」ライブラリが自動的に含まれるようになりました。

2
Amit Patel

誤ってライブラリからMaven依存関係を削除した場合。以下をpom.xmlに追加します

<build>     
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
</build>
1
Guest

Eclipseプラグインを使用してMavenタスクを実行する場合(2つあります:sonatypeからM2ecipse、「公式」のものとGoogle Codeのq4e)、コンテキストメニュー(プロジェクトを右クリック)にオプションがありますそれは無痛です。

Eclipseワークベンチで両方のプラグインを同時に実行し、プロジェクトごとにそれらを無差別に使用できます。

0
Alain Pannetier

試してみてください:プロジェクト-> Maven->依存関係管理の無効化をクリックします。そして、依存関係管理を再度有効にします。

0
ChangePicture

また、pomへのmaven-dependency-pluginを検討することもできます。

<plugins>
... 
    <plugin> 
        <artifactId>maven-dependency-plugin</artifactId> 
            <executions> 
                <execution> 
                    <phase>process-resources</phase> 
                    <goals> 
                        <goal>copy-dependencies</goal> 
                    </goals> 
                    <configuration>   
                        <outputDirectory>${project.build.directory}/lib</outputDirectory> 
                    </configuration> 
                </execution> 
            </executions> 
    </plugin> 
...
</plugins>

「mvn package」を実行すると、mavenは必要なすべての依存関係をyour_project_path/target/your_project_name/WEB-INF/lib /ディレクトリにコピーします。そこからそれらをあなたのproject/libディレクトリにコピーし、外部jarとして追加することができます(プロジェクト設定ビルドパスを設定します)

0
Picrochole

これらの手順に従ってください

1)プロジェクトのクラスパスに移動する

2)ライブラリタブに移動

3)[ライブラリの追加]をクリックします

4)開いたダイアログでMaven Managed Dependenciesを選択します

5)[次へ]をクリックします

6)新しいダイアログで[プロジェクト設定の管理]をクリックします

7)開いたダイアログで、ワークスペースから依存関係を解決するチェックボックスを選択します

8)[デフォルトに戻す]をクリックします

9)何らかのプロセスが実行され、ライブラリにすべての依存関係が含まれるようになります。

0
raj