web-dev-qa-db-fra.com

Création de Hadoop avec Eclipse/Maven - Artefact manquant

J'essaie d'importer le org.Apache.hadoop de Cloudera: hadoop-client: 2.0.0-cdh4.0.0depuis cdh4 maven repo dans un projet maven dans Eclipse 3.81, m2e plugin, avec le jdk 1.7 d'Oracle .0_05 sur win7 en utilisant 

<dependency>
    <groupId>org.Apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.0.0-cdh4.0.0</version>
</dependency>

cependant, j'obtiens l'erreur suivante:

The container 'Maven Dependencies' references non existing library 'C:\Users\MyUserId\.m2\repository\jdk\tools\jdk.tools\1.6\jdk.tools-1.6.jar'

plus spécifique, maven indique que l'artefact suivant est manquant

Missing artifact jdk.tools:jdk.tools:jar:1.6

Comment résoudre ceci?

69
jvataman

jdk.tools:jdk.tools (ou com.Sun:tools, ou le nom que vous lui donnez) est un fichier JAR distribué avec JDK. Généralement, vous l'ajoutez à des projets maven comme ceci:

<dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <scope>system</scope>
    <systemPath>${Java.home}/../lib/tools.jar</systemPath>
</dependency>

Voir le Maven FAQ pour ajouter des dépendances à tools.jar

Ou, vous pouvez installer manuellement tools.jar dans le référentiel local en utilisant:

mvn install:install-file -DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar -DgeneratePom=true

et ensuite référence comme Cloudera, en utilisant:

<dependency>
    <groupId>jdk.tools</groupId>
    <artifactId>jdk.tools</artifactId>
    <version>1.6</version>
</dependency>
89
npe

Le problème est dans le support Eclipse Maven, la question connexe est ici .

Sous Eclipse, la variable Java.home est définie sur le JRE utilisé pour démarrer Eclipse, et non sur le JRE de génération. Le JRE système par défaut de C:\Program Files n'inclut pas le JDK, donc tools.jar n'est pas trouvé.

Pour résoudre le problème, vous devez démarrer Eclipse à l'aide du JRE du JDK en ajoutant quelque chose comme ceci à Eclipse.ini (before-vmargs!):

-vm
C:/<your_path_to_jdk170>/jre/bin/server/jvm.dll

Ensuite, actualisez les dépendances Maven (Alt-F5) (Actualiser le projet ne suffit pas).

97
rustyx

grâce à npe, en ajoutant

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

pom.xml a fait l'affaire.

35
jvataman

Si vous pouvez vivre sans tools.jar et qu'il est uniquement inclus en tant que dépendance chaînée, vous pouvez l'exclure du projet incriminé:

<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

Cela a fonctionné pour moi:

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

essayez:

mvn install: fichier d'installation -DgroupId = jdk.tools -DartifactId = jdk.tools -Dversion = 1.6 -Dpackaging = jar -Dfile = "C:\Programmes\Java\jdk\lib\tools.jar" 

vérifiez également: http://maven.Apache.org/guides/mini/guide-3rd-party-jars-local.html

0
Yogesh Borkhade

J'utilise ci-dessous dans mon projet MR. 

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

Si jdk.tools est présent dans le référentiel .m2. Pourtant, vous obtenez l'erreur quelque chose comme ça:

artefact manquant: jdk.tools ..... c: .../jre/.. 

Dans le chemin de construction -> configurez le chemin de construction -> Bibliothèques.Il suffit de changer la bibliothèque système JRE de JRE à JDK. 

0
Divya Rakshu

Modifiez l'ensemble des JRE installés dans votre Eclipse . Fenêtre> Préférences> Java> JRE installés, modifiez l'emplacement de jre en% Java_HOME%/jre, mais pas quelque chose comme C:\Program Files\Java\jre7.

0
Sondy Woo

peut-être que le système installe le paquet jdk, mais peut-être des outils de développement ou des plugins.

Je trouve ce problème sous opensuse env ..__ et j'installe Java-1_6_0-openjdk-devel

le problème a disparu.

0
liuyang1

J'ai également rencontré ce problème parce que je viens juste d'installer JRE pas avec JDK. Ainsi, l'ajout de dépendances pour jdk.tools ne peut pas être résolu, car tools.jar n'existe pas dans mon répertoire $ {Java_HOME}/lib /.

Maintenant, j'ai téléchargé et installé JDK pour le réparer.

0
Cataclysm