web-dev-qa-db-ja.com

m2EclipseがMaven依存関係を見つけられず、アーティファクトが見つからない

Eclipseのmaven 2プラグインとしてm2Eclipseを使用しています。私はMavenを初めて使用するので、検索で解決策は得られませんでしたが、私の間違いは簡単かもしれません。コマンドラインからmavenを実行すると、正常にビルドできます。ただし、既存のMavenプロジェクトとしてインポートするか、mvn Eclipse:eclipseを使用してインポートすると、POMファイルで見つからないアーティファクトが取得され、Mavenの依存関係がまったく読み込まれません。

奇妙なことに、2つのプロジェクトがあり、両方とも親POMパッケージプロジェクトの子です。 1人の子供はすべてのMaven依存関係をロードしますが、もう1人の子供は見つけることができず、私のPOMファイルにはアーティファクトが欠落しています。繰り返しますが、コマンドラインからそれらをすべてインストールしてパッケージ化できます。

私は自分のプロジェクトを問題なく動作するnetbeansにロードしようとしましたが、Eclipseを使用する必要があります。

これを修正する方法についてのアイデアはありますか?

更新

ディレクトリ構造、pomファイルのレイアウト:

--main
  --pom.xml   (is a pom package that is the parent to two other projects)
  --ProjectA
    --pom.xml
  --ProjectB
    --pom.xml

メインは、ProjectAとProjectBの両方の親プロジェクトです。 ProjectBには依存関係としてProjectAがあります。どうやらm2Eclipseはその依存について満足していません。 ProjectAの依存関係をProjectBのpomファイルから削除するとすぐに、Mavenのすべての依存関係がEclipseによって検出されます。

- com.company.myproj:app:6.6.0:jar Missing: ---------- 1) com.company.myproj:main:pom:${myproj.version} ---------- 1 required artifact is missing. for artifact: com.company.myproj:main:pom:$
 {myproj.version} from the specified remote repositories: Apache-incubating (http://people.Apache.org/repo/m2-incubating-repository/, releases=true, snapshots=true), central (http://
 repo1.maven.org/maven2, releases=true, snapshots=false)

ただし、ProjectBにはProjectAに依存する必要があります。エラーメッセージは、リモートリポジトリでProjectAを探しているm2Eclipseのようです。プロジェクトAは.m2ディレクトリにのみ存在する必要がありますが、m2Eclipseにそこを表示するよう指示する方法がわかりません。

これはm2Eclipse固有の問題であると思われます。コマンドラインからmvnを使用すると問題なく動作し、前述のように、netbeansはプロジェクトと依存関係を正常にロードします。

32
vagabond

他のプロジェクトで作成された依存関係について、この問題が発生しました。ダウンロードしたサードパーティの依存関係はビルドパスで正常に表示されましたが、作成したライブラリでは表示されませんでした。

解決策:正しくビルドされていないプロジェクトで、プロジェクトを右クリックし、[プロパティ]、[Maven]の順に選択します。 [ワークスペースプロジェクトから依存関係を解決する]チェックボックスをオフにし、[適用]をクリックして[OK]をクリックします。プロジェクトを再度右クリックして、Maven-> Update Snapshots(またはUpdate Dependencies)を実行すると、プロジェクトの再構築時にエラーが消えます(自動ビルドが有効になっている場合は自動的に)。

45
IceBox13

M2Eclipseのインストールでは、組み込みのMavenを使用しているようです。Mavenには、独自のリポジトリ(ユーザーホームの下にある)と設定があります。

Mavenの設定(Window-> Preferences-> Maven-> Installationsを開くと、追加できますAdd ...を選択してMavenをインストールし、M2_HOMEディレクトリを参照します。

Preferences screenshot
(ソース: sonatype.com

詳細については、 m2Eclipse book を参照してください

20
Rich Seller

私にとって、Mavenは依存関係をダウンロードしていましたが、クラスパスに追加できませんでした。プロジェクトの.classpathを見ましたが、maven関連のエントリはありませんでした。追加したとき

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

問題は解決しました。

19

私が見つけた理由の1つは、リポジトリからjarが見つからない理由でしたその特定のjarの.pomファイルが見つからないか破損している可能性があるためです。修正して、ローカルリポジトリからロードしてみてください。

2
HP24

さて、この問題を修正しました。最初にプロジェクトをMavenプロジェクトに変換し、次にそれらをEclipseワークスペースから削除してから、それらを再インポートする必要がありました。

1
Steven L

これは、異なる<localRepository>が設定されたカスタムの 'Settings.xml'を使用している場合に問題になる可能性があります。

EclipseはMAVENのデフォルトインストールを使用し、ユーザーがデフォルトの場所を使用してローカルMavenリポジトリを検索します。これはLinuxシステムでは「/home/${USER}/.m2/」になります。

以下を実行することにより、カスタマイズされた「Settings.xml」を使用するようにEclipseを簡単に構成できます:ジャンプ->ウィンドウ->設定->「Maven」を選択->「ユーザー設定」を選択

  1. 「ユーザー設定」で、「参照」をクリックし、カスタマイズされた「Settings.xml」を選択して、「ユーザー設定」のカスタム「Settings.xml」ファイルを選択します。
  2. [ローカルリポジトリ]テキストボックスに上記のファイルのカスタムの場所が表示されない場合は、[設定の更新]をクリックし、場所を入力して[インデックスの再作成]をクリックします。
  3. 「OK」をクリックします

この後、「Project Explorer」からプロジェクトを選択し、右クリックして「Maven」>「Update Project」を選択します。ウィンドウでプロジェクトが選択(チェック)されていることを確認し、「OK」をクリックします。

Mavenにカスタム「Settings.xml」を使用している場合、これは問題の解決に役立つはずです。

それが役に立てば幸い。

0
Dinesh Kumar

M2Eclipseの使用に問題がありました(つまり、まったくインストールされていないように見えました)が、 [〜#〜] iam [〜#〜] を使用してプロジェクトを開発します。基盤(またはホストされている、またはそのようなもの)。

プロジェクトに奇妙なエラーが表示されることがあり(何かを動かせない)、単純なコマンド(Eclipseからタスクまたはコンソールから実行)+更新(F5)すべての問題を解決しました:

mvn clean

ただし、Eclipseでプロジェクトを作成したことに注意してください。ただし、pom.xml 手で。

0