it-swarm.com.de

Buiding Hadoop mit Eclipse/Maven - Fehlendes Artefakt jdk.tools:jdk.tools:jar:1.6

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?

69
jvataman

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>
89
npe

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).

97
rustyx

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.

35
jvataman

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>
8
Adam LaStrange

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>
6
Ravi Macha

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

0
Yogesh Borkhade

Ich verwende unten in meinem MR-Projekt. 

<exclusions>
                <exclusion>
                    <artifactId>jdk.tools</artifactId>
                    <groupId>jdk.tools</groupId>
                </exclusion>
</exclusions>
0
Suman

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. 

0
Divya Rakshu

Ä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

0
Sondy Woo

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 ..

0
liuyang1

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.

0
Cataclysm