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?
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>
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).
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.
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>
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>
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
J'utilise ci-dessous dans mon projet MR.
<exclusions>
<exclusion>
<artifactId>jdk.tools</artifactId>
<groupId>jdk.tools</groupId>
</exclusion>
</exclusions>
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.
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.
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.
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.