Maven
プロジェクトを作成し、Maven
のプロジェクトのビルドパスにすべてのEclipse
依存関係を追加します。プロジェクトのプロパティダイアログでJava Build Path> Add Library> Maven Managed Dependency> Nextに移動すると、「Maven Project Setting」を使用してMaven依存関係解決を構成するように求められます。
私の質問は、現在のビルドパスにMaven依存関係を追加する方法ですか?
コマンドラインタイプから:
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
m2e がインストールされていて、プロジェクトが既にMavenプロジェクトであるが、Mavenの依存関係がまだない場合、私にとって最も簡単な方法は
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によると)。
うまくいけば、このアプローチは、ハッキングの回避策に落ち着くのではなく、永続的な解決策につながることを願っています!
Pom.xmlで定義されているパッケージング戦略が「pom」ではないことを確認してください。それは「jar」または他のものでなければなりません。それを行ったら、プロジェクトを右クリックして更新し、Maven-> Update Project ...に移動します。
M2Eclipse をインストールし、EclipseでプロジェクトをMavenプロジェクトとして開くことができます。必要な構成とエントリが作成されます。
これは、pomのその後の更新にも役立ちます。 Maven Eclipseプラグインでは、変更ごとにEclipse構成を手動で再生成する必要があります。
Maven-> Update Projectが機能しない場合これらは私が宗教的に従うステップです。 Eclipseからプロジェクトを削除します(ワークスペースからプロジェクトを削除しないでください)。Eclipseを閉じてコマンドラインに移動し、これらのコマンドを実行します。
mvn Eclipse:clean
mvn Eclipse:eclipse -Dwtpversion=2.0
Eclipseを開き、既存のMavenプロジェクトをインポートします。プロジェクトにMaven依存関係が表示されます。
これがうまくいくことを願っています。
問題を理解できました。 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」ライブラリが自動的に含まれるようになりました。
誤ってライブラリから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>
Eclipseプラグインを使用してMavenタスクを実行する場合(2つあります:sonatypeからM2ecipse、「公式」のものとGoogle Codeのq4e)、コンテキストメニュー(プロジェクトを右クリック)にオプションがありますそれは無痛です。
Eclipseワークベンチで両方のプラグインを同時に実行し、プロジェクトごとにそれらを無差別に使用できます。
試してみてください:プロジェクト-> Maven->依存関係管理の無効化をクリックします。そして、依存関係管理を再度有効にします。
また、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として追加することができます(プロジェクト設定ビルドパスを設定します)
これらの手順に従ってください
1)プロジェクトのクラスパスに移動する
2)ライブラリタブに移動
3)[ライブラリの追加]をクリックします
4)開いたダイアログでMaven Managed Dependenciesを選択します
5)[次へ]をクリックします
6)新しいダイアログで[プロジェクト設定の管理]をクリックします
7)開いたダイアログで、ワークスペースから依存関係を解決するチェックボックスを選択します
8)[デフォルトに戻す]をクリックします
9)何らかのプロセスが実行され、ライブラリにすべての依存関係が含まれるようになります。