问题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中查找它
由此基本可以确定为m2e插件的bug。查询了m2e的bug库,处于open状态,具体参考:https://issues.sonatype.org/browse/MNGECLIPSE-2542
解决方案:使用mvn help:effective-pom -Doutput=ep.xml查看工程的依赖,显示为:
- <dependency>
- <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,如需转载请自行联系原作者