このSonatype Eclipseプラグインを初めて使用して、コマンドラインからmavenで構築できる既存の(巨大な)ソフトウェアを処理しようとしています。
組み込みのMaven 3の代わりに私のmaven 2.2.1インストールを使用するようにプラグインを構成しました。
Eclipseには25のプロジェクト(ルートpom.xmlからロード)があり、そのうち4つのプロジェクトにはコンパイルエラーがあります。 Mavenコンソールには、次のような行が多数含まれています。
アーティファクトcommons-logging:commons-logging:jar:1.0.4:compileがありません
リポジトリにすべてのjarがあり、M2_REPOクラスパス変数が正しく定義されています。プラグインがすべてのjarを認識しないのはなぜですか?
それらのプロジェクトの.classpathファイルは単に「MAVEN2_CLASSPATH_CONTAINER」を参照しているだけで、jarのリストはありません。 Eclipseのpom.xmlでは、不足しているjarの最初の行にエラーが表示されますが、コマンドラインからビルドできます。
何か案が?私は助けが必要です!この問題が解決しない場合は、NetBeansへの移行を試みます。
ありがとうございました。
ようやく回避策を見つけました。これは確かにm2Eclipseのバグですが、quartz-1.6.0.pom
のquartz-1.6.0.jar
の横に.m2\repository\opensymphony\quartz\1.6.0\
を追加すると、問題は消えました。
pomは http://repo1.maven.org/maven2/opensymphony/quartz/1.6.0/ に存在しませんが、quartz-1.6.0-bundle.jar
linketから抽出できます http://jira.opensymphony.com/browse/QUARTZ-482 で
これは奇妙な解決策ですが、私の同僚のPCでも動作しました。
Eclipseに強制的に更新を指示する必要がある場合があります。
Project -> Maven -> Update Maven Project
そして、あなたが選択したことを確認してください:
Force Updates of Snapshots/Releases
これは、mvn installがいくつかのjarファイルをMavenリポジトリーにコピーし、Eclipseがこのjarがそこにコピーされる前にこのリポジトリーをチェックしたときに発生します。
Eclipseで上記の問題が発生したときに依存関係管理が有効になっている場合は、Project > Maven > Disable Dependency Management and then \Project > Maven > Enable Dependency Management
。これは通常、pom.xmlの依存関係エラーを削除します。
また、プロジェクトの依存関係を完了するための上記の手順の後に、上記の回答で示された@Nishantを実行します。
right click on your project > Maven > Update Dependencies
その後
right click on your project > Maven > Update Project configuration
M2Eclipseプラグインが正しくインストールされていれば、これで問題が解決するはずです。また、オプションがあるかどうかを確認しますright click project > Maven > Enable dependency Management
選択してください。
Eclipse Keplerを使用して、maven自然の削除と再追加により、私が抱えていたこの同じ問題を修正しました。このプロセスが実際に行ったのは、.settings/org.Eclipse.m2e.core.prefsファイルを変更して、行を変更することでした。
resolveWorkspaceProjects=false
に
resolveWorkspaceProjects=true
したがって、必要に応じてこの変更を手動で行うことができます。
将来のGoogle社員のために2cを追加:
この問題が発生するたびに、m2リポジトリから対応するフォルダーを削除します(Macでは~/.m2/repository)
にあり、clean install
を使用してEclipseから再度ビルドします。
毎回動作します。
相互依存関係を持つマルチプロジェクトビルドがある場合、そのプロジェクトのみが依存している特定の依存関係を解決するために子プロジェクトpomでリポジトリが定義されていて、そのプロジェクトが子プロジェクトでこれらの依存関係を確認できない他の解決策です(コマンドラインから機能する場合でも)。
リポジトリ定義を親pomに移動します。
Eclipse IDEを閉じて再度開きます。この問題は修正する必要があります。
他の提案はどれもうまくいきませんでしたが、次の手順でうまくいきました(SpringSource Tool Suite 2.6.1):
プロジェクトの依存関係管理を無効にして有効にしても効果がない場合(通常は有効です)、プロジェクトの.classpathファイルを変更して次の行を追加できます。
<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
Eclipseの再起動後、依存関係を追加する必要があります。
ビルドパスにjarがないことは、Mavenの依存関係を有効にしていないことを示しています。プロジェクトを右クリックして、Mavenを選択し、「Maven依存関係管理を有効にする」を選択します。これにより、M2EclipseがPOMを参照できるようになります。
これと同じ問題が発生しました。 CLIのクリーンインストールで、Eclipseで依存関係を削除し、再度貼り付けます。これでうまくいきました。
Mavenローカルリポジトリのjarを除くすべてのアーティファクトを削除します
遅い答え:私の場合、settings.xmlに複数のプロファイルがありました。 Mavenビルド実行構成で正しいプロファイルが選択されたため、ビルドは機能しましたが、プロジェクト-> Maven-> Select Mavenプロファイル...