天天看點

eclipse的m2e插件的bug

問題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,如需轉載請自行聯系原作者

繼續閱讀