Eclipseプロジェクトに欠落しているMaven依存関係


108

依存関係を解決するためのプロジェクトがmavenでセットアップされています。通常は問題なく動作しますが、今は新しいPCでコンパイルして実行しようとしているため、Eclipseで依存関係が見つからないという問題があります。

面白いのは、コンソールまたはEclipseで「mvnパッケージ」を実行すると、問題なく動作し、必要なすべてのjarを含むwarが生成されることです。「ビルドパスが不完全なため、プロジェクトはビルドされませんでした。org.slf4j.Loggerのクラスファイルが見つかりません...」というEclipseだけが不平を言います。プロジェクトを他のコンピューターと比較すると(プロジェクトが正常に機能する場合)、Eclipseの「Maven依存関係」リストにかなりの数のライブラリーがないことがわかります。とはいえ、それらはパッケージ化された戦争にあり、リポジトリフォルダーの下にもあります。

したがって、jar-sが存在するのは、Eclipseがそれらすべてを「Maven依存関係」の下にリストしないためです。私に何ができる?

コンピューターは、Windows 7で64ビットJavaとEclipseを実行しています。


jira.codehaus.org/browse/MNG-2045のようなスコープの問題ですか?
VonC、2010年

1
これは回答を投稿する価値はありませんが、将来これを読む人にとっては、ワイルドカードなしで少なくとも3文字を入力する必要があるようです。たとえば、「t」または「to」と入力しても結果は表示されませんが、「tom」は表示されます。信じられないかもしれませんが、私はこれを実現する前に、約1時間かけてさまざまな理由を探しました。
Chris Neve、2015

回答:


117

まあ、私はここに投稿されたすべてを試しましたが、残念ながら私の場合は何もうまくいきません。したがって、さまざまな組み合わせを試してみたところ、この問題を解決する組み合わせができました。

1)Eclipseのプロジェクトのルートにある.classpathファイルを開きます。

2)次のエントリをファイルに挿入します。

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry> 

次に、Eclipseでプロジェクトを再ビルドします(Project-> Clean-Build)。これで、プロジェクトのJavaビルドパスの[ライブラリ]タブで、Maven依存関係が含まれていることを確認できます。 ここに画像の説明を入力してください


3
これは誰もが最初に試すべきことです。プロジェクトディレクトリにある.classpathファイルをメモ帳で開き、上記の行を追加してプロジェクトを更新します。
2015

9
これは他のすべてが失敗したところで機能しました。しかし、私が作成するすべてのプロジェクトに対してこれを行う必要がありますか?なぜ自動的に動作しないのですか?本当の問題は何ですか?
yeaaaahhhh..hamf hamf 2015

ため息、これはまだm2e 1.6.2.20150902-002で壊れています。Mac OS X / JDK 1.8での新しいEclipseインストールでテスト済み。Java開発者のためのEclipse IDEバージョン:Mars.2リリース(4.5.2)ビルドID:20160218-0600このプラグインが正しく動作するためにEclipse Java EEが必要かどうか疑問に思いますか?
Mat Gessel 2016

1
この答えが最初の答えになるはずです。動作した唯一の;-) thx
Manuel Manhart

1
マジック!Eclipse 4.4.2でも引き続き有効
versvs '10 / 10/4

89

問題が解決しました!

正確に何が解決したのかはわかりませんが、Eclipseで4つのことを行いました。

  • ウィンドウ->設定:Maven->インストール:グローバル設定->ファイルを開き、ハードコードされたlocalRepository
  • プロジェクト->クリーン
  • プロジェクトを右クリック:Maven-> Update dependency
  • プロジェクトを右クリック:Maven-> Update project configuration

最初の2つの直後は変更がなかったので、更新の依存関係だったと思います。


2
"Project-> Clean"を知っていて、試してみましたが、最初は役に立ちませんでした。
hostnik 2010年

7
最後のポイントでした。プロジェクト構成を更新すると、「Maven Dependencies」ライブラリがプロジェクトに追加されます。
Eduard Wirch、2011

2
ちなみに、私は最初に自分のプロジェクトを右クリックして、構成に移動し、「Mavenプロジェクトに変換」する必要がありました。
duma 14

2
Eduard Wirchの答えを拡張して、Maven-> Update Project ...ウィンドウにある「Force Snapshot of Snapshots / Releases」ボックスをチェックする必要もありました。私の行方不明のアーティファクトはスナップショットであり、それを強制せずにどういうわけかうまく更新できませんでした。
evaldeslacasa、2015

1
ユーザー設定「settings.xml」を「.m2」ディレクトリの下にあるものに変更する必要がありました。以前は、Mavenのインストールディレクトリの下に設定されていました。
ジャックストロー

34

私もEclipseを使い始めたばかりですが、依存関係が正常にダウンロードされたことを示す兆候があっても、Eclipseがインポートステートメントを認識しないという同様の問題が発生しています。

コマンドラインに移動して次のように入力し、依存関係ファイルが実際にダウンロードされたことを確認する必要があります

mvn dependency:tree

そこにパッケージが表示されているのにEclipseがそれを認識しない場合、私にとって(時々)機能するのは、ターミナルに移動し、プロジェクトフォルダーにcdして、

mvn eclipse:clean その後 mvn eclipse:eclipse

最後に日食でプロジェクトを更新します

なぜこれが機能するのかわかりませんし、一度機能しないこともあるので、もう一度実行しても機能するので、試してみる価値はあります。


これは、settings.xmlファイルに問題があることを示すことで、正しい方向を示しました!@rogueleaderr、ありがとう!
スラッシュ

ええ、それは私の友人のために働き、彼女のすべての問題と頭痛を解決しました。残念ながら私にはうまくいきませんでした。
ザックジリック2018

それも私にとってはうまくいきましたが、誰かが舞台裏で何が起こっているのか説明できますか?
YouAreAwesome

31

私のプロジェクトは失敗しました。これがEclipse Indigo x64(J2EE 3.7.3)で修正した方法です。

  1. POMファイルを削除しました(もちろんバックアップされています)。
  2. プロジェクトのコンテキストメニュー > Mavenの > を無効にMavenの自然
  3. プロジェクトを削除しました(ただし、ディスク上のコンテンツは削除しませんでした)。
  4. Import > General > Existing Projectとして再インポートされます。
  5. プロジェクトのコンテキストメニュー > 設定 > Mavenのプロジェクトに変換...
  6. Mavenウィザードのデフォルトを受け入れます。
  7. バックアップされたPOMでPOMを上書きします。(これでMaven Dependenciesフォルダーができました)。
  8. Maven Update / Cleanを使用して適切に測定します。

それが誰かを助けることを願っています。:)


これは私を助けます!何が問題なのかはわかりませんが、64ビットのJuno / Springsource 3を使用しているため、Mavenプロジェクトを正しくインポートできません。通常のプロジェクトとしてチェックアウトし、私のPOMの名前を変更し、手順5以降の指示に従っている場合は、機能します。そうしないと、コマンドラインmvn eclipse:eclipseを除いて、Mavenの依存関係がプロジェクトに追加されることはありません。
ngreen 2012

私はこれを行いましたが、まだMavenの依存関係フォルダーがありません。ここに私のpom.xmlファイルがあると私は、この問題を持っている理由、それはあると思う: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>antlr.tuto.calco</groupId> <artifactId>CalculatriceAntlr</artifactId> <version>0.0.1-SNAPSHOT</version> </project>
Anatch

私はどこに問題があるのか​​本当にわかりませんが、私は上記の手順に従って、その問題なく機能しています。クラスが見つからない、xml dtdが見つからないなどのエラーが発生します。しかし、現在は解決されています。ありがとう。賛成票。
Sagar007 2017年

29

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

SOLUTION: 正しく構築されていないプロジェクトでは、

  • プロジェクトを右クリックし、[プロパティ]、[Maven]の順に選択します。

  • チェックを外して「というラベルのボックスワークスペース・プロジェクトからの解決の依存関係

  • [適用]をクリックしてから、[OK]をクリックします。

  • プロジェクトをもう一度右クリックして、Maven-> Update Snapshots(またはUpdate Dependencies)を実行します。

また、プロジェクトが再ビルドされると、エラーは解消されます(自動ビルドが有効になっている場合は自動的に)。


ありがとう、それで私の問題は解決しました。それはEclipseのバグであることを指摘しているようです。
スコットマッキンタイア2015

1
ねえ、Maven-> Update Snapshots(またはUpdate Dependencies)などはありません。右クリックすると、Mavenオプションはありませんか?あなたが説明したものはどこにありますか?探していますが、[適用]を
クリックした

1
@DarioBBこの回答は5年近く前のものです。私は1年以上Eclipseで働いていません。このオプションがまだ利用可能かどうかはわかりません。最新バージョンではない可能性があります。
IceBox13

1
このソリューションは、Eclipseネオンで私に役立ちました。その後、Maven> Update Project(Update Snapshotsではない)を実行します。
イヴァナ

9

まあ、私はここに投稿されたすべてを試しましたが、残念ながら私の場合は何もうまくいきません。したがって、さまざまな組み合わせを試してみたところ、この問題を解決する組み合わせができました。

1).classpathを開きますEclipseのプロジェクトのルートにファイルをます。

2)次のエントリをファイルに挿入します。

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry> 

次に、Eclipseでプロジェクトを再ビルドします(Project-> Clean-Build)。


ありがとう!この解決策は私にとって最も効果的で、修正が1つだけ難しいので、プロジェクトを閉じて再度開く必要がありました。
Tarun Gupta

素晴らしい。これも私にとってはうまくいきました。私のプロジェクトでは、Mavenの依存関係を確認できませんでした。これで表示され、ビルドパスにも追加されました。ありがとう!
Tahir Mehmood、2018年

7

誰かが他のすべてのオプションを試しても解決しない場合に備えて、プロジェクトフォルダを右クリックして、Mavenオプションに移動し、[依存関係を追加]ボタンをクリックしてください。何らかの理由で、Eclipseは最初の試行でpom.xmlから手動で依存関係を更新していません。

メニュー選択のスクリーンショット



5

私にとっての問題は、mavenがmyMavenFolder \ confにあるsettings.xmlファイルを見つけられなかったことでした

私が問題を修正するためにしたことは、Eclipseからsettings.xmlファイルの正しい場所を選択することでした:
ウィンドウ->設定-> Maven->ユーザー設定

最後に、プロジェクトを適用して更新します


4

したがって、私はこのパーティーに約4〜5年遅れていますが、リポジトリから引き出した後にこの問題があり、このスレッドからの他の解決策がこれらの警告/エラーを取り除くためにうまくいかなかった。

これは私のために働きました:

EclipseからWindow-> Preferences-> Maven(expand)-> Errors / Warningsに移動します。最後のオプションは「プラグインの実行はライフサイクル構成の対象外です」と表示されます。このオプションのドロップダウンメニューを使用して、[無視]、次に[適用]、[OK]の順に切り替えます。(「Mavenプロジェクトの更新が必要」のプロンプトでOKと言います)。

詳細情報:

これは必ずしも根本的な問題を「修正」するわけではなく、「ベストプラクティス」とは見なされない場合もありますが、これらの警告がEclipseに表示されないようにし、少なくとも先に進む必要があります。具体的には、私はEclipse Luna Service Release 1(4.4.1)と連携していて、Spring Dashboard&Spring IDE Core(3.6.3)とm2e(1.5)がインストールされており、Arch LinuxとOpenJDK 1.7で実行されていました。私は自分のプロジェクトを既存のmavenプロジェクトとしてインポートし、既存の警告/エラーについて警告されたときに[OK]を選択しました(後で対処するため)。

「プラグインの実行がカバーされていません...」という警告を抑制/削除するEclipse-Maven

(申し訳ありませんが、私はデザイナーではありませんが、明確にするために画像を追加しました。)


4

私の場合、次の手順が機能しました:

1日 食で、目的のプロジェクトを右クリックしますMaven-> Disable Maven Nature

2 再度右クリックして、プロパティに移動します。JREシステムライブラリのみを残して、外部Maven依存関係のすべての証拠を削除します。

3プロジェクトをもう一度右クリックし、[ 構成]-> [Mavenプロジェクトに変換 ]に移動します。


3

上記の解決策はどれも私にとってはうまくいかなかったので、この答えは私の状況の他の人のためのものです。私は最終的に自分で問題を見つけ、別の解決策を見つけました。pom.xmlファイルには、依存関係をラップするdependencyManagementタグが含まれており、これが存在する場合、M2EclipseはMaven Dependenciesフォルダーを追加しませんでした。そこで、このタグを削除してから、Ualter Jr.が提供するソリューションを実行すると、Eclipseは不足しているフォルダーをすぐに追加しました!


3

ここに私が従ったステップがあります。
1. EclipseからMavenプロジェクトを削除しました。
2. srcとpom 以外のすべてのファイル(.setting / .classpath / target)をソースフォルダーから削除しました。
3. Mavenプロジェクトとして再度インポートされます
。4.再度ビルドすると、Mavenの依存関係が表示されます。


2

私の答えは@JerylCookの答えに似てい.classpathます。動作しているMavenプロジェクトで別のファイルを見つけ、悪いものをその正常なものとして編集します。キーは追加することです

<attributes>
    <attribute name="maven.pomderived" value="true"/>
</attributes>

<classpathentry>タイプconとのすべてでsrc。に変更<classpathentry .... />することを忘れないでください<classpathentry ...>xxx</classpathentry>

最後に、mavenプロジェクトを更新し、mavenで再インストール/再構築します。


これでうまくいきました。ありがとう。
NuCradle

1

Maven->プロジェクト構成の更新(またはJunoでは「構成の更新...」)を実行した後、「ネストされたパス」エラーが発生した場合、ビルドパスが正しく構成されていません。

プロジェクトを右クリック->ビルドパス->ビルドパスの構成

「/ src」とそのレベルのディレクトリのみが含まれていることを確認してください。たとえば、「/ src」と「/ src / main / resources」が存在する場合、これは正しくありません。2番目のリソース( '/ src / main / resources')は最初の( '/ src')の下に「ネスト」されており、EclipseがMavenの依存関係を表示できないため、リソースをインポートできません。


1

私の問題も同様に聞こえるので、ディスカッションに追加します。既存のmavenプロジェクトのEclipseへのインポートをキャンセルしたため、更新が許可されず、Work Spaceのビルドが適切に完了しませんでした。

それを解決するために私がしなければならなかったのは選択でRun As... -> Maven build...あり、目標の下に入力しましたdependency:go-offlineそれして実行しました。

次に、プロジェクトを右クリックし、Maven -> Update Project...その特定のプロジェクトを選択して更新しました。

これにより、最終的にソースフォルダを作成してインポートを完了することができました。


1

私は1)でエラーを解決できました(右クリック)(あなたのmavenプロジェクト)-> maven-> maven install

インストールが成功した後

2)(あなたのmavenプロジェクト)-> maven-> update projectを右クリックします。そしてメイベンの全体のエラーが解決しました!


1

私にとっては、次のように、.projectファイルにbuildCommand(org.eclipse.m2e.core.maven2Builder)とNature(org.eclipse.m2e.core.maven2Nature)を追加するだけで十分です。

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>iText</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
    </natures>
</projectDescription>

そして私は ここに画像の説明を入力してください


1

これは私がそれを解決した方法です

  • ウィンドウ->設定:Maven->ユーザー設定(結果のウィンドウで「ファイルを開く」をクリックするか、メモ帳などの外部テキストエディターでsettings.xmlを編集します)localRepository(このウィンドウに表示されます)が正しいことを確認します。ファイルにタイプミスがありました。
  • settings.xmlを修正したら、同じ[設定]-> [Maven]-> [ユーザー設定]画面にある[設定の更新]をクリックします。

ここで再構築すると、最新のJARが正しい場所にインストールされます。


1

私は同様の問題があり、この投稿のすべての答えを試しました。私がこの問題を解決するのに最も近づいたのは、Joseph LustソリューションとPaul Creaseソリューションを組み合わせることでした。プロジェクトを削除して再インポートした後、バックアップしたpom.xmlファイルを追加しましたが、pom.xmlの依存関係管理タグを削除して、魔法のように依存関係フォルダーがそこにあるまで、何も表示されませんでした。

ただし、子POMは分割して親のpom.xml依存関係管理を機能させる必要があるため、EclipseまたはコマンドラインからMVNがプロジェクトで適切に機能せず、壊れたpom.xmlエラーが発生しました。

すべてが失敗した場合の最後の解決策は、プロジェクトに必要な.jarファイルを手動でインポートすることです。プロジェクトのプロパティ-> Javaビルドパス->ライブラリを右クリックして、外部JARを追加します。

MVNがコマンドラインから正しく機能していて、プロジェクトで正常にビルドが完了している場合、.m2 / repositoryフォルダーに必要なすべてのリポジトリが存在します。pom.xmlの依存関係タグで言及されているすべての外部jarを追加すると、Eclipseに参照ライブラリセクションが表示され、厄介な赤いエラーがすべてなくなります。

これは最適なソリューションではありませんが、依存関係の欠落によるエラーなしにEclipseで作業できるようになり、Eclipseとコマンドラインの両方からMavenプロジェクトをビルドできるようになります。


1

これと同じ問題が私にも起こりました。これは、リポジトリの問題が原因でjarのダウンロード中にエラーが発生したためで、の赤いフラグで示されていましたpom.xml

別のリポジトリを追加して、赤い旗がpom.xml消えてEclipseがpomを再度ロードし、問題を解決して、Mavenの依存関係をProject Explorerにリストしました。目に見える問題を解決することは単純で明白に聞こえますが、Eclipseがmavenを実行して正常にビルドできたことは非常に満足していたため、赤旗とリポジトリの問題がpomを解析してmavenを一覧表示することを望まない根本にあることは明白ではありませんでした依存関係



1

.classpathを以下に更新すると、毎回機能します。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="target/classes" path="src/main/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="WEB-INF/" kind="src" path="src/main/webapp"/>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="output" path="target/classes"/>
</classpath>

1

Mavenの依存関係:Eclipseで何が解決されましたか?「pom」ファイルに依存関係を追加しました。ビルドを行いましたが、EclipseでMaven依存関係を確認できませんでした。次のステップ:プロジェクトを閉じました。その後、プロジェクトを再開しました。Mavenの依存関係を確認できました。


1

Pomでエラーが発生したときにこのエラーが発生しました。

  1. コンソールでmvn eclipse:eclipseコマンドを実行して、pomが解析可能かどうかを確認します。
  2. 解析できない場合は、エラーを検索します。

私はcygwinの下で実行しています。コマンドラインで(mvnを使用して)ビルドは成功しましたが、Eclipseの下ではこのプロジェクトだけがビルドされていないことに気付きました。実行後、mvn eclipse:eclipseすべての依存関係がEclipseプロジェクトのクラスパスに追加され、プロジェクトは問題なく見えました。++
Bill Naylor

0

この1つの問題にさまざまな原因と考えられる解決策があるのは驚くべきことです。自分に役立つ別の解決策を見つけました。

まあ、それはそれほどソリューションではなく発見です:JavaパースペクティブのデフォルトであるパッケージエクスプローラーでMaven依存関係ノードを見ることができますが、私はできません見ることますが、プロジェクトエクスプローラーを使用するJava EEパースペクティブではそれを見ることデフォルトでは。これらのエクスプローラーはどちらも一目で非常によく似ているので、両方にMavenの依存関係が表示されるはずです。

私がこれを理解しようとしていたとき、その違いに気付いていなかったので、結局それは私にとって本当に問題ではありませんでした。


0

プロジェクト全体が日食で奇妙に見え、Mavenの依存関係フォルダーが見つからず、一部のタイプが不明として表示されましたが、Mavenで正常にビルドできました。私の問題を修正したのは、プロジェクトビルドパスのソースパスにgenフォルダーを追加することでした。

おそらく、これはこのAndroid / FBReaderJ / genにすでに似ていますが、ソースフォルダーではありません。ソースフォルダーに変換するか、名前を変更します


0

Eclipse STSで「Maven Dependencies」が表示されなくなった場合は、を確認して修正する必要がありますpom.xml。私はこれを(2回)行い、解決しました。これは依存関係の問題ではなく、文字列が生成され、私の中でランダムな位置に移動しましたpom.xml


0

上記のすべては私にはうまくいきませんでした。修正は、.m2の下のリポジトリフォルダーを削除して、EclipseからMavenの更新を行うことだけでした。


0

非常に多くの答え。ご想像のとおり、これが機能しない理由はたくさんあります。私の場合、依存関係の周りの-タグも認識しませんでした。Facepalm

例:

...
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

これは、このバージョンと目的のバージョンのすべてのサブプロジェクトの依存関係を定義するだけです!これは、例えば、マスターPOMでどのように見えるかです。この現在のプロジェクトでlibを実際に使用するには、次のようにdepencyも追加します。

...
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </dependency>
</dependencies>

現在、この現在のプロジェクトでlibを提供します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.