天天看点

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,如需转载请自行联系原作者

继续阅读