jva*_*man 73 java maven-2 hadoop maven cloudera
我试图在eclipse 3.81,m2e插件的maven项目中导入cloudera的org.apache.hadoop:hadoop-client:2.0.0-cdh4.0.0, 来自cdh4 maven repo,在win7上使用oracle的jdk 1.7.0_05
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.0.0-cdh4.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
The container 'Maven Dependencies' references non existing library 'C:\Users\MyUserId\.m2\repository\jdk\tools\jdk.tools\1.6\jdk.tools-1.6.jar'
Run Code Online (Sandbox Code Playgroud)
更具体的是,maven声明缺少以下工件
Missing artifact jdk.tools:jdk.tools:jar:1.6
Run Code Online (Sandbox Code Playgroud)
怎么解决这个?
rus*_*tyx 101
问题出在Eclipse Maven的支持上,相关问题就在这里.
在Eclipse下,java.home
变量设置为用于启动Eclipse的JRE,而不是构建JRE.默认系统JRE from C:\Program Files
不包含JDK,因此tools.jar
未找到.
要解决此问题,您需要使用JDK中的JRE启动Eclipse,方法是将此类内容添加到eclipse.ini
(之前 -vmargs
!):
-vm
C:/<your_path_to_jdk170>/jre/bin/server/jvm.dll
Run Code Online (Sandbox Code Playgroud)
然后刷新Maven依赖项(Alt-F5)(仅刷新项目是不够的).
npe*_*npe 92
jdk.tools:jdk.tools
(或者com.sun:tools
,或者任何你命名的)是与JDK一起分发的JAR文件.通常你将它添加到maven项目,如下所示:
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)
请参阅Maven常见问题解答,了解如何添加依赖项tools.jar
或者,您可以tools.jar
使用以下命令在本地存储库中手动安装:
mvn install:install-file -DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar -DgeneratePom=true
Run Code Online (Sandbox Code Playgroud)
然后像Cloudera那样引用它,使用:
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
jva*_*man 36
感谢npe,补充说
<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>
Run Code Online (Sandbox Code Playgroud)
到pom.xml就可以了.
如果你可以在没有tools.jar的情况下生活,它只作为链接依赖项包含在内,你可以将其从违规项目中排除:
<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>
Run Code Online (Sandbox Code Playgroud)
小智 6
这对我有用:
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>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
117265 次 |
最近记录: |