我正在尝试在Eclipse 3.81的Maven项目中使用Oracle的JDK 1.7.0_05,在Windows 7上使用m2e插件,从CDH4 Maven仓库导入Cloudera的org.apache.hadoop:hadoop-client:2.0.0-cdh4.0.0。
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.0.0-cdh4.0.0</version>
</dependency>
但是,我收到了以下错误:
The container 'Maven Dependencies' references non existing library 'C:\Users\MyUserId\.m2\repository\jdk\tools\jdk.tools\1.6\jdk.tools-1.6.jar'
更具体地说,Maven指出以下构件缺失
Missing artifact jdk.tools:jdk.tools:jar:1.6
怎么解决这个问题?
[jdk]\jre\bin\javaw.exe
,但是以这种方式运行时,Maven无法找到tools.jar。需要明确更改Eclipse使用[jdk]\bin\javaw.exe
运行,以便Maven能够正确地找到它所调用的com.sun:tools:1.8
jar包。 - AlexC:/Program Files/Java/jdk1.8.0_51/bin/javaw.exe
并启动 eclipse,Alt-F5,错误消失了。我惊讶地发现,在 JDK 中有两个不同的 javaw 可执行文件,具有不同的校验和。 - David LottssystemPath
(http://maven.apache.org/general.html#tools-jar-dependency),即以“../”开头,则不会出现此问题。 Maven的java.home
变量应该指向[JRE](https://web.archive.org/web/20150520200505/https://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide),而不是JDK。 另一方面,环境变量JAVA_HOME
应该指向JDK。 - rustyx