私が経験している問題は、Eclipseがプロジェクトの依存関係を解決できないことです。コーディング時に依存関係が正しく機能しているように見えても(オートコンプリートが表示されます)、欠落しているアーティファクトを参照するエラーの膨大なリストが表示されるため、これにより問題が発生します。
これらをフィルタリングすると、次のことがわかりました。
コンテナ「Maven Dependencies」は、存在しないライブラリ「/home/[...]/.m2/repository/com/Sun/tools/1.5.0/tools-1.5.0.jar」を参照しています
この依存関係はpomで次のように設定されたプロファイルを持つstruts2によって導入されたようです。
<dependency>
<groupId>com.Sun</groupId>
<artifactId>tools</artifactId>
<version>1.5.0</version>
<scope>system</scope>
<systemPath>${Java.home}/../lib/tools.jar</systemPath>
</dependency>
そのsystemPathは解決するので、これが問題を引き起こす理由はわかりません。いずれにせよ、このm2Eclipse依存関係がローカルリポジトリに見つからないシステム依存関係であることをEclipseに伝える方法はありますか?
私は同じ問題に直面していて、次のことをする必要がありました
シームレスに機能しました。
それを追加する価値は、私のEclipse.ini
ファイルファイルの先頭に-vm ...行を追加する必要がありました。お気に入り
-vm
C:\Program Files\Java\jdk1.6.0_27\bin
... ... ...
-vmargsの後にすべてが直接vmに渡され、特定の選択は-vmオプションに依存するため、-vmオプションが-vmargsの前に配置されていることを確認してください。
この問題が発生しましたが、以下の手順で修正しました:
Case1:
デフォルトではEclipseはJREを指しますが、Eclipse mavenプラグインはJDKを必要とするため、JDKを指します
ウィンドウ->設定-> Java->インストールされたJRE
jDKに変更します
手順に従って、JREからJDKに変更します。
これで問題なくプロジェクトをビルドできます。これはこの問題を解決する正しい方法ですか?
struts依存関係からツールjarを除外します。
<exclusions>
<exclusion>
<groupId>com.Sun</groupId>
<artifactId>tools</artifactId>
</exclusion>
</exclusions>
私は同じ問題を抱えていました-Eclipseがtools.jarを見つけることができませんでした。その理由は、EclipseがJDKではなくJREを使用していることがわかったためです。 JDK binディレクトリを指す-vmパラメータをEclipse.iniに追加する必要があります。
...
-vm
path_to_jdk\bin
...
これで問題が解決します。
ダウンロード http://repository.ops4j.org/maven2/tools/tools/1.5.0/ とjarをC:\Documents and Settings\Administrador\.m2\repository\com\Sun\tools\1.5.0
。幸運を。
EclipseがJDKインストールを使用であることを確認する必要があります。
EclipseでIDE go to Window
/Preferences
/Java
/_Installed JREs
_はJDKインストールを指します。
例:C:\Program Files (x86)\Java\jdk1.6.0_37
これを読んで色々試しました。私のために働いたのはこれでした:私はウィンドウを変更しました->設定-> Java->代わりにインストールされたJREがJDKを指すようにしました。これでこの問題は解決しました。
<dependency>
<groupId>com.Sun</groupId>
<artifactId>tools</artifactId>
<version>1.6.0</version>
<scope>system</scope>
<systemPath>${env.Java_HOME}/lib/tools.jar</systemPath>
</dependency>
これを追加するだけです。それが動作します。
これは奇妙に聞こえるかもしれませんが、私はSVNリポジトリと再同期するだけでこの問題を解決しました。
問題は、ワークスペース全体を別のPCから取得したため、m2eプラグインを使用してmavenプロジェクトをインポートしたときに、一部の依存関係が正しく同期されなかった可能性があります。
誰かがこのエラーで必死になっていて、すべての可能性を試している場合に備えて、これを投稿しています。
私も同様の問題があり、次の方法で修正しました。コマンドプロンプトでJDKインストールパスのlibディレクトリに移動します。以下のコマンドを実行してインストールし、tools.jarをインストールします。
$mvn install:install-file -DgroupId=Sun.jdk -DartifactId=tools \
-Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar
Eclipseにインポートする各プロジェクトで、Eclipseはファイルシステムにいくつかのファイルを作成します-.project、.classpath、フォルダー.settingsなど。 Eclipseがこれらを正しく更新していないようです。
これらを削除して、再度インポートしてください。
明らかに、これが最初のインポートであり、すでにいくつかの問題が発生している場合、この回避策は機能しません。ここを見るより Maven2:アーティファクトがありませんが、jarが配置されています
この依存関係は期待どおりに機能するはずです。疑わしい場合は、依存関係の解決に関してEclipseプラグインが非常に脆弱であるため、Mavenのコマンドラインバージョンを試してください。
Eclipseの他の部分とは異なり、POMに問題がある場合、ビルドの部分クラスパスさえ作成できないため、エラーは別の可能性があります。
他のすべてが失敗した場合は、次のエラーが表示されるように、ローカルリポジトリに ファイルをインストール してみてください。
[1]あなたのVMがどこにあるかを調べるには、この/ usr/libexec/Java_homeと入力します
[2] vi ./Eclipse.app/Contents/MacOS/Eclipse.ini
[3]
-vm
/ライブラリ/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/
-vmargs ........ ........
[4] Eclipseで、Mavenを更新します
[5]すべてを歌うのは順調です:-)
私は最終的にそれを引き起こしているものを見つけました。 maven1リポジトリを使用している場合、m2Eclipseのバグのようです。私はまだ私のpomにJava.net maven1リポジトリを持っていました。無効にすると、すべてが再び機能します。結局のところ、ツールのjarファイルを見つけることとは何の関係もないため、追跡するのは非常に煩わしい問題です。
誤ったJava構成によるこの問題。すべてのIDE必要な完全なJDKパック。jrelibではなく、JDK lib内でtools.jarが利用可能であるため
コントロールパネルに移動して、環境パス変数をC:\ Program Files\Java\jdk1.8.0_31\jre\binに変更します。
java_HOMEをC:\ Program Files\Java\jdk1.8.0_31に変更します。
iDE(EclipseまたはSTS)を開き、JREシステムライブラリをC:\ Program Files\Java\jdk1.8.0_31に変更します。
次にIDEを再起動します。それが動作します
同じ問題が何度かありましたが、次の2つの手順で修正できました。
このプロセスを何度か繰り返すことができました。
よりエレガントなソリューション(私はまだ試す機会がありませんでした)は、 https://stackoverflow.com/a/16444984 で言及されているm2Eclipseキャッシュをクリアすることです。
これが誰にも役立つことを願っています。
私のために働いたハックな解決策:
次のjarがMavenキャッシュに見つからないというm2eの不満がある場合(pomファイルのエラーログまたは「Javaビルドパス> Maven依存関係」リストで不正なパスを見つけることができます):
${HOME}/.m2/repository/jdk/tools/jdk.tools/1.6/jdk.tools-1.6.pom
次に、次のコマンドを試します(インストールされているJDKの場合はJava_VERSION_HERE
を入力します(例:jdk1.8.0_191-AMD64)。次に、上記の.m2/repository/
の後にある2つのパスセクションを使用して正しいgroupId
を決定します。そして1.6
をm2eが不満を述べているバージョンに置き換えます-インストールしたJDKがm2eが不満を言っているバージョンと一致するかどうかは問題ではないかもしれません):
mvn install:install-file -Dfile=/usr/Java/JAVA_VERSION_HERE/lib/tools.jar \
-DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.6
このコマンドは、JDKからtools.jar
をコピーしてMavenキャッシュに入れ、Mavenで使用できるようにpom.xml
ファイルも作成します。