問題1:在eclipse3.6 Helios版本下, 安裝的http://m2eclipse.sonatype.org/sites/m2e插件 。
使用依賴:
<dependency>
<groupId>com.alibaba.external</groupId>
<artifactId>sun.jdk.tools</artifactId>
<version>1.6.0</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
問題:而eclipse的卻給出了如下的提示:不存在D:\maven.repository\com\alibaba\external\sun.jdk.tools\1.6.0\sun.jdk.tools-1.6.0.jar
Description Resource Path Location Type
The container 'Maven Dependencies' references non existing library 'D:\maven.repository\com\alibaba\external\sun.jdk.tools\1.6.0\sun.jdk.tools-1.6.0.jar' normandy.test-0.1.0-SNAPSHOT Build path Build Path Problem
存在2點錯誤:
錯誤1:将java.home轉移為找m2_home, 這是錯誤的
錯誤2:錯誤的了解scope為system的含義,system的準确含義如下:system,類似provided,需要顯式提供包含依賴的jar,Maven不會在Repository中查找它
解決方案:使用mvn help:effective-pom -Doutput=ep.xml檢視工程的依賴,顯示為:
<groupId>com.alibaba.external</groupId>
<artifactId>sun.jdk.tools</artifactId>
<version>1.6.0</version>
<scope>system</scope>
<systemPath>D:\ProgramFiles\Java\jdk1.6.0_18\jre/../lib/tools.jar</systemPath>
</dependency>
此為對pom中該依賴的正确解析
問題2:
在eclipse3.3.1中使用Maven 2.0 integration插件時,m2e插件取得${java.home}存在問題。插件錯誤的将java.home認為是JAVA_HOME,産生了錯誤。
System.out.println("JAVA_HOME: " + System.getenv("JAVA_HOME"));
System.out.println("java.home: "+System.getProperty("java.home"));
輸出結果:
JAVA_HOME: D:\ProgramFiles\Java\jdk1.6.0_18
java.home: D:\ProgramFiles\Java\jre6
本文轉自 tianya23 51CTO部落格,原文連結:http://blog.51cto.com/tianya23/579773,如需轉載請自行聯系原作者