web-dev-qa-db-ja.com

m2Eclipseは「アーティファクトがありません」と言っていますが、コマンドラインからビルドできます。

この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への移行を試みます。

ありがとうございました。

23
Pino

ようやく回避策を見つけました。これは確かにm2Eclipseのバグですが、quartz-1.6.0.pomquartz-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でも動作しました。

0
Pino

Eclipseに強制的に更新を指示する必要がある場合があります。

Project -> Maven -> Update Maven Project

そして、あなたが選択したことを確認してください:

Force Updates of Snapshots/Releases

これは、mvn installがいくつかのjarファイルをMavenリポジトリーにコピーし、Eclipseがこのjarがそこにコピーされる前にこのリポジトリーをチェックしたときに発生します。

12
Damian

Eclipseで上記の問題が発生したときに依存関係管理が有効になっている場合は、Project > Maven > Disable Dependency Management and then \Project > Maven > Enable Dependency Management。これは通常、pom.xmlの依存関係エラーを削除します。

また、プロジェクトの依存関係を完了するための上記の手順の後に、上記の回答で示された@Nishantを実行します。

7
Jurie

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選択してください。

5
Nishant

Eclipse Keplerを使用して、maven自然の削除と再追加により、私が抱えていたこの同じ問題を修正しました。このプロセスが実際に行ったのは、.settings/org.Eclipse.m2e.core.prefsファイルを変更して、行を変更することでした。

resolveWorkspaceProjects=false

resolveWorkspaceProjects=true

したがって、必要に応じてこの変更を手動で行うことができます。

2
cyberconte

将来のGoogle社員のために2cを追加:

この問題が発生するたびに、m2リポジトリから対応するフォルダーを削除します(Macでは~/.m2/repository)にあり、clean installを使用してEclipseから再度ビルドします。

毎回動作します。

2
Ariel T

相互依存関係を持つマルチプロジェクトビルドがある場合、そのプロジェクトのみが依存している特定の依存関係を解決するために子プロジェクトpomでリポジトリが定義されていて、そのプロジェクトが子プロジェクトでこれらの依存関係を確認できない他の解決策です(コマンドラインから機能する場合でも)。

リポジトリ定義を親pomに移動します。

1
codeghost

Eclipse IDEを閉じて再度開きます。この問題は修正する必要があります。

1
balaji swaroop

他の提案はどれもうまくいきませんでしたが、次の手順でうまくいきました(SpringSource Tool Suite 2.6.1):

  • ローカルのMavenリポジトリのコンテンツをバックアップする
  • リポジトリを削除する
  • プロジェクト> Maven>依存関係の更新
  • パブリックリポジトリで使用できないものをバックアップから置き換えます
0
lucrussell

プロジェクトの依存関係管理を無効にして有効にしても効果がない場合(通常は有効です)、プロジェクトの.classpathファイルを変更して次の行を追加できます。

<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>

Eclipseの再起動後、依存関係を追加する必要があります。

0
vinga

ビルドパスにjarがないことは、Mavenの依存関係を有効にしていないことを示しています。プロジェクトを右クリックして、Mavenを選択し、「Maven依存関係管理を有効にする」を選択します。これにより、M2EclipseがPOMを参照できるようになります。

0
TrueDub

これと同じ問題が発生しました。 CLIのクリーンインストールで、Eclipseで依存関係を削除し、再度貼り付けます。これでうまくいきました。

0
Michael Lasso

Mavenローカルリポジトリのjarを除くすべてのアーティファクトを削除します

0

遅い答え:私の場合、settings.xmlに複数のプロファイルがありました。 Mavenビルド実行構成で正しいプロファイルが選択されたため、ビルドは機能しましたが、プロジェクト-> Maven-> Select Mavenプロファイル...

0
Wernke