Ich versuche clouderas org.Apache.hadoop: hadoop-client: 2.0.0-cdh4.0.0von cdh4 maven repo in einem Maven-Projekt in Eclipse 3.81, m2e plugin, mit Oracle's Jdk 1.7 zu importieren .0_05 auf win7 mit
<dependency>
<groupId>org.Apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.0.0-cdh4.0.0</version>
</dependency>
ich erhalte jedoch die folgende Fehlermeldung:
The container 'Maven Dependencies' references non existing library 'C:\Users\MyUserId\.m2\repository\jdk\tools\jdk.tools\1.6\jdk.tools-1.6.jar'
genauer gesagt gibt Maven an, dass das folgende Artefakt fehlt
Missing artifact jdk.tools:jdk.tools:jar:1.6
Wie löse ich das?
jdk.tools:jdk.tools
(oder com.Sun:tools
oder wie auch immer Sie es nennen) ist eine JAR-Datei, die mit JDK verteilt wird. Normalerweise fügst du es zu maven Projekten hinzu:
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<scope>system</scope>
<systemPath>${Java.home}/../lib/tools.jar</systemPath>
</dependency>
Siehe Maven FAQ zum Hinzufügen von Abhängigkeiten zu tools.jar
.
Oder Sie können tools.jar
manuell im lokalen Repository installieren, indem Sie Folgendes verwenden:
mvn install:install-file -DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar -DgeneratePom=true
und verweisen Sie dann wie Cloudera darauf, mit:
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.6</version>
</dependency>
Das Problem liegt in der Eclipse Maven-Unterstützung, die verwandte Frage ist hier .
Unter Eclipse wird die Variable Java.home
auf die JRE gesetzt, mit der Eclipse gestartet wurde, nicht die Build-JRE. Die Standard-System-JRE von C:\Program Files
enthält das JDK nicht, sodass tools.jar
nicht gefunden wird.
Um das Problem zu beheben, müssen Sie Eclipse mit der JRE vom JDK aus starten, indem Sie Eclipse.ini
(before-vmargs
!) Folgendes hinzufügen:
-vm
C:/<your_path_to_jdk170>/jre/bin/server/jvm.dll
Aktualisieren Sie dann die Maven-Abhängigkeiten (Alt-F5) (Das Aktualisieren des Projekts reicht nicht aus).
dank npe, hinzufügen
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.7.0_05</version>
<scope>system</scope>
<systemPath>${Java_HOME}/lib/tools.jar</systemPath>
</dependency>
zu pom.xml machte den Trick.
Wenn Sie ohne tools.jar leben können und dies nur als verkettete Abhängigkeit enthalten ist, können Sie es aus dem betreffenden Projekt ausschließen:
<dependency>
<groupId>org.Apache.ambari</groupId>
<artifactId>ambari-metrics-common</artifactId>
<version>2.1.0.0</version>
<exclusions>
<exclusion>
<artifactId>jdk.tools</artifactId>
<groupId>jdk.tools</groupId>
</exclusion>
</exclusions>
</dependency>
Das hat für mich funktioniert:
dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.7.0_05</version>
<scope>system</scope>
<systemPath>${Java_HOME}/lib/tools.jar</systemPath>
</dependency>
versuchen :
mvn install: Installationsdatei -DgroupId = jdk.tools -DartifactId = jdk.tools -Dversion = 1.6 -Dpackaging = jar -Dfile = "C:\Programme\Java\jdk\lib\tools.jar"
Überprüfen Sie auch: http://maven.Apache.org/guides/mini/guide-3rd-party-jars-local.html
Ich verwende unten in meinem MR-Projekt.
<exclusions>
<exclusion>
<artifactId>jdk.tools</artifactId>
<groupId>jdk.tools</groupId>
</exclusion>
</exclusions>
Wenn die jdk.tools im .m2-Repository vorhanden ist. Trotzdem bekommst du den Fehler etwa so:
fehlendes Artefakt: jdk.tools ..... c: .../jre/..
Ändern Sie in buildpath-> configure build path -> Libraries.
Ändern Sie den Satz installierter JREs in Ihrem Eclipse . Fenster> Voreinstellungen> Java> Installierte JREs, ändern Sie den Speicherort von jrezu% Java_HOME%/jre, jedoch nicht etwa C:\Programme\Java\jre7
vielleicht System installieren jdk Paket, aber vielleicht einige Entwicklungswerkzeuge oder Plugin.
Ich finde dieses Problem unter opensuse env . Und installiere Java-1_6_0-openjdk-devel
das problem ist verschwunden ..
Ich hatte auch dieses Problem, weil ich nur JRE nicht mit JDK installiert habe. Das Hinzufügen von Abhängigkeiten für jdk.tools kann daher nicht behoben werden, da tools.jar in meinem Verzeichnis $ {Java_HOME}/lib / nicht vorhanden ist.
Nun habe ich JDK heruntergeladen und installiert, um das Problem zu beheben.