依存関係を解決するために、Mavenでセットアップされたプロジェクトがあります。通常は正常に動作しますが、今では新しいPCでコンパイルして実行しようとしていますが、Eclipseで依存関係が見つからないという問題があります。
面白いのは、コンソールまたはEclipseで「mvn package」を実行すると、正常に動作し、必要なすべてのjarを含む戦争が発生することです。 Eclipseは、「プロジェクトのビルドパスが不完全であるため、プロジェクトはビルドされませんでした。org.slf4j.Loggerのクラスファイルが見つかりません...」と文句を言います。プロジェクトを他のコンピューターと比較すると(プロジェクトが正常に機能する場合)、Eclipseの「Maven依存関係」リストにかなりの数のライブラリーがないことがわかります。これらはパッケージ化された戦争にあり、リポジトリフォルダーの下にもあります。
Jar-sはそこにありますが、Eclipseはそれらをすべて「Maven依存関係」の下にリストしません。私に何ができる?
コンピューターは64ビットJavaおよびEclipseを搭載したWindows 7で実行されています。
問題が解決しました!
何が正確に解決したのかわかりませんが、Eclipseで4つのことを行いました。
最初の2つの直後に変更はなかったため、更新の依存関係だったと思います。
さて、私はここに投稿されたすべてを試してみましたが、残念ながら私の場合は何も動作しません。そこで、さまざまな組み合わせを試してみて、この問題を解決したこの組み合わせを見つけました。
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でプロジェクトを再ビルドします([プロジェクト]-> [クリーンビルド])。 Mavenの依存関係が含まれるライブラリタブでプロジェクトのJava Build Pathで確認できるようになりました。
私もEclipseに不慣れで、すべての兆候が依存関係が正常にダウンロードされたことを示しているにもかかわらず、Eclipseがimportステートメントを認識しないという同様の問題を抱えています。
コマンドラインに移動して次のように入力して、依存関係ファイルが実際にダウンロードされたことを確認する必要があります
mvn dependency:tree
そこにパッケージが表示されていても、Eclipseがそれを認識しない場合、(時々)ターミナルに移動して、プロジェクトフォルダーにcdし、次のように入力することです。
mvn Eclipse:clean
その後mvn Eclipse:eclipse
最後にEclipseでプロジェクトを更新します
私はこれがなぜ機能するのか分かりませんし、時には一度機能しないこともありますが、もう一度それを行うと機能します...試してみる価値があります!
私のプロジェクトは台無しになりました。以下は、Eclipse Indigo x64(J2EE 3.7.3)で修正した方法です。
それが誰かを助けることを願っています。 :)
他のプロジェクトで作成された依存関係について、この問題が発生しました。ダウンロードしたサードパーティの依存関係は、ビルドパスには問題なく表示されましたが、作成したライブラリには表示されませんでした。
SOLUTION:
正しくビルドされていないプロジェクトでは、
プロジェクトを右クリックし、[プロパティ]、[Maven]の順に選択します。
「Workspaceプロジェクトからの依存関係を解決」というラベルの付いたボックスのチェックを外します
[適用]をクリックして、[OK]をクリックします。
プロジェクトを再度右クリックして、Maven-> Update Snapshots(またはUpdate Dependencies)を実行します
また、プロジェクトを再構築するとエラーが消えます(自動ビルドを有効にしている場合は自動的に)。
誰かが他のオプションをすべて試してもまだ動かない場合は、プロジェクトフォルダーを右クリックし、Mavenオプションに移動して[依存関係を追加]ボタンをクリックしてください。何らかの理由で、Eclipseは最初の試行時にpom.xmlから依存関係を手動で更新していません。
さて、私はここに投稿されたすべてを試してみましたが、残念ながら私の場合は何も動作しません。そこで、さまざまな組み合わせを試してみて、この問題を解決したこの組み合わせを見つけました。
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でプロジェクトを再ビルドします([プロジェクト]-> [クリーンビルド])。
同様の問題がありました。 Maven-> Update Project Configurationアクションを実行して解決しました
私の場合、次の手順が機能しました:
1Eclipseで、目的のプロジェクトを右クリックしますMaven-> Disable Maven Nature
2もう一度右クリックして、Propertiesに移動します。外部Maven依存関係のすべての証拠を削除し、JREシステムライブラリのみを残します。
3プロジェクトをもう一度右クリックして、に移動します構成-> Mavenプロジェクトに変換
私にとって問題は、myMavenFolder\confにあるsettings.xmlファイルが見つからないことでした。
この問題を修正するために行ったのは、Eclipseからsettings.xmlファイルの正しい場所を選択することでした。
ウィンドウ->設定-> Maven->ユーザー設定
最後に、プロジェクトを適用して更新します
だから私はこのパーティーに約4〜5年遅れていますが、レポから引き出した後にこの問題がありました、そしてこのスレッドの他のソリューションは私のケースではこれらの警告/エラーを取り除くためにうまくいきませんでした。
これは私のために働いた:
Eclipseから[ウィンドウ]-> [設定]-> [Maven(展開)]-> [エラー/警告]に移動します。最後のオプションは、「ライフサイクル設定でカバーされないプラグインの実行」です。このオプションのドロップダウンメニューを使用し、「無視」、「適用」、「OK」を切り替えます。 ([Mavenプロジェクトの更新が必要]プロンプトで[OK]と言います)。
詳細:
これにより、根本的な問題が必ずしも「修正」されるとは限らず、一部の人にとっては「ベストプラクティス」とはみなされない場合もありますが、Eclipseでこれらの警告が表示されないようにし、少なくとも先に進めます。具体的には、Arch LinuxおよびOpenJDK 1.7で実行される、Spring DashboardおよびSpring IDE Core(3.6.3)およびm2e(1.5)がインストールされたEclipse Luna Service Release 1(4.4.1)を使用していました。プロジェクトを既存のMavenプロジェクトとしてインポートし、既存の警告/エラーに関する警告が表示されたら[OK]を選択しました(後で対処するため)。
(申し訳ありませんが、私はデザイナーではありませんが、わかりやすくするために写真を追加しました。)
ここに私が従った手順があります。
1。 Eclipseからmavenプロジェクトを削除しました。
2。 srcおよびpom以外のすべてのファイル(.setting/.classpath/target)をソースフォルダーから削除しました。
3。 Mavenプロジェクトとして再度インポート
4。再度ビルドすると、Mavenの依存関係を確認できるはずです。
上記の解決策はどれも私にとってはうまくいきませんでしたので、この答えは私の状況にある他の誰にも当てはまります。私は最終的に自分で問題を見つけ、別の解決策を見つけました。 pom.xmlファイルには、依存関係をラップするdependencyManagementタグが含まれていました。M2Eclipseは、Maven Dependenciesフォルダーが存在する場合は追加しませんでした。そこで、このタグを削除し、Ualter Jr.が提供するソリューションを実行すると、Eclipseはすぐに不足しているフォルダーを追加しました。
私の答えは@JerylCookの答えに似ています:動作中のMavenプロジェクトで別の.classpath
ファイルを見つけ、悪いものを良いものとして編集します。キーは追加することです
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
タイプcon
およびsrc
のすべての<classpathentry>
で。 <classpathentry .... />
を<classpathentry ...>xxx</classpathentry>
に変更することを忘れないでください。
最後に、mavenプロジェクトを更新し、mavenで再インストール/再構築します。
Maven依存関係:Eclipseで何が解決したのですか? 「pom」ファイルに依存関係を追加しました。ビルドを行いましたが、EclipseでMaven依存関係を確認できませんでした。次のステップ:プロジェクトを閉じました。その後、プロジェクトを再度開きました。 Mavenの依存関係を確認できました。
mvn Eclipse:clean
その後、Eclipseから:「Maven Update Project」がトリックを行います!
1)でエラーを解決できました。(mavenプロジェクト)-> maven-> maven install
インストールが成功した後
2)(mavenプロジェクト)-> maven->プロジェクトの更新を右クリックします。そして、mavenのエラー全体が解決されました!
この同じ問題が私に起こりました。それは、pom.xml
の赤いフラグで示される、リポジトリの問題のためにjarのダウンロード中にエラーが発生したためです。
別のリポジトリを追加して、pom.xml
の赤いフラグが消え、Eclipseが再びPOMをロードし、問題を解決し、Project ExplorerにMavenの依存関係をリストしました。目に見える問題を解決するのは簡単で明白に聞こえますが、Eclipseはmavenを実行して正常にビルドすることを非常に喜んでいるので、赤い旗とレポの問題がpomを解析してmavenをリストすることを望まないことの根本にあることは明らかではありませんでした依存関係
.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>
同様の問題があり、この投稿のすべての回答を試しました。私がこの問題を解決するのに最も近かったのは、Joseph LustとPaul Creaseのソリューションを組み合わせることです。プロジェクトを削除して再インポートした後、バックアップしたpom.xmlファイルを追加しましたが、pom.xmlの依存関係管理タグを削除し、魔法のように依存関係フォルダーが存在するまで何も表示されませんでした。
ただし、機能するために親pom.xml依存関係管理が必要なため、子POMを分割し、その結果、MVNはEclipseまたはコマンドラインのいずれかでプロジェクトで正しく機能しなくなり、破損したpom.xmlエラーが発生しました。
すべてが失敗した場合の最後の解決策は、プロジェクトに必要な.jarファイルを手動でインポートすることです。プロジェクトのプロパティ-> Java Build Path-> Libraries and Add external Jarを右クリックします。
MVNがコマンドラインから正常に機能しており、プロジェクトでビルドが正常に完了している場合、必要なすべてのリポジトリが.m2/repositoryフォルダーにあります。 pom.xmlの依存関係タグに記載されているすべての外部jarを追加すると、Eclipseに参照ライブラリセクションが表示され、厄介な赤いエラーがすべてなくなります。
これは最適なソリューションではありませんが、依存関係がないというエラーなしでEclipseで作業でき、Eclipseとコマンドラインの両方からMavenプロジェクトをビルドすることもできます。
これは私がそれを解決した方法です
再構築すると、最新のJARが正しい場所にインストールされます。
私にとっては、次のように.projectファイルにbuildCommand(org.Eclipse.m2e.core.maven2Builder)とネイチャー(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>
そして私は持っていた
私の問題は似ているので、議論に追加します。既存のMavenプロジェクトのEclipseへのインポートをキャンセルしたため、更新が許可されず、Work Spaceのビルドが適切に完了しませんでした。
それを解決するためにやらなければならなかったのは、Run As... -> Maven build...
を選択し、目標の下でdependency:go-offline
と入力して実行したことです。
次に、プロジェクトを右クリックしてMaven -> Update Project...
を選択し、その特定のプロジェクトを更新しました。
これにより、最終的にソースフォルダーを作成し、インポートを完了することができました。
Maven->プロジェクト構成の更新(またはJunoでは「構成の更新...」)を実行した後に「ネストパス」エラーが発生した場合は、ビルドパスの構成が間違っています。
プロジェクトを右クリック->ビルドパス->ビルドパスの構成
「/ src」とそのレベルのディレクトリのみが含まれるようにしてください。あなたが持っている場合「/ src」および「/ src/main/resources」も存在しますが、これは正しくありません。 2番目のリソース( '/ src/main/resources')は最初のリソース( '/ src')の下に「ネスト」され、EclipseがMaven依存関係を認識できないため、リソースをインポートできなくなります。
私の場合、次の手順が機能しました:
1 Eclipseで、目的のプロジェクトを右クリックしますMaven-> Maven Natureを無効にします
2もう一度右クリックして、[プロパティ]に移動します。外部Maven依存関係のすべての証拠を削除し、JREシステムライブラリのみを残します。
3プロジェクトをもう一度右クリックして、[構成]-> [Mavenプロジェクトに変換]に移動します。
それも私のために働いた
私もこの問題に遭遇しました。それは私を数時間混乱させました。このトピックで提案された多くの解決策を試しました。ついに、Java Element Filtersが原因であることがわかりました。
上記のすべてが私とはうまくいきませんでした。修正のためには、.m2の下のリポジトリフォルダーを削除してから、EclipseからMaven更新を行うだけでした。
Eclipse STSで「Maven Dependencies」が消えた場合は、pom.xml
を確認して修正する必要があります。これを(2回)行い、解決しました。これは依存関係の問題ではなく、ストリングが生成され、pom.xml
内のランダムな位置に移動しました。
ウィンドウ->設定-> Maven->インストール->グローバル設定C:\ Program Files(x86)\ Apache-maven-(version)\ conf\settings.xml
mvn依存関係:ツリーmvn依存関係:解決
正しい設定ファイルをポイントしたら、プロジェクトを右クリックします。依存関係を更新し、プロジェクト構成を更新します。ロードされないか、コードがエラーを保持している場合は、プロジェクトを閉じ/開きます
eclipseでプロジェクト全体が奇妙に見え、mavenの依存関係フォルダーが見つからず、一部のタイプが不明として表示されましたが、mavenで正常にビルドできました。問題を修正したのは、プロジェクトビルドパスのソースパスにgenフォルダーを追加することでした。
これはおそらくこれに似ています Android/FBReaderJ/genはすでに存在しますが、ソースフォルダーではありません。ソースフォルダーに変換するか、名前を変更します
以下のソリューションが私のために働いた-
1-プロジェクトディレクトリに移動
2- mvn Eclipse:eclipseを実行します(希望のmvnがパスに追加されます)
3- mvn clean installを実行します
Eclipseでプロジェクトを更新して確認します。
たくさんの答え。予想どおり、これが機能しない理由はたくさんあります。私の場合、依存関係に関連するタグも認識していませんでした。 facepalm
例:
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
これは、このサブプロジェクトと目的のバージョンのすべてのサブプロジェクトの依存関係のみを定義します!これは、例えばマスターPOMのようになります。この現在のプロジェクトでライブラリを実際に使用するには、次のように依存度を追加する必要があります。
...
<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>
今、この現在のプロジェクトでライブラリを提供します。
この1つの問題が非常に多くのさまざまな原因と考えられる解決策を持っていることは非常に驚くべきことです。私に合った別の解決策を見つけました。
まあ、それはそれほど解決策ではなく発見です:JavaパースペクティブのデフォルトであるパッケージエクスプローラーでMaven依存関係ノードを見ることができますが、notデフォルトでProject Explorerを使用するJava EEパースペクティブで確認してください。これらのエクスプローラーは両方とも一見非常によく似ているため、両方にMaven依存関係が表示されることが予想されます。
私がこれを理解しようとしていたとき、私はその違いに気付いていなかったので、結局のところ、それは結局私にとって本当に問題ではありませんでした。