使用eclipse 3.5,当我创建一个新的maven项目时,m2eclipse自动将J2SE1.4添加到库中,并将编译器符合性级别自动添加到1.4(项目属性> Java编译器)。 我的JRE系统库是1.6,我的默认编译器合规性级别是1.6。我甚至没有安装1.4。 我可以让m2eclipse使用我的默认设置并阻止它修改项目设置吗?m2eclipse将JDK合规性设置为1.4
回答
应该遵循maven-compiler-plugin
配置:
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
(即使如mentioned in this thread,它不会方面-J工作)
This thread提醒人们内m2eclipse的之间的区别日食和maven脚本:
有一点值得一提的是,这只应用程序当m2eclipse根据pom.xml中的配置配置Eclipse工具(如JDT,AJDT和WTP)时,将其设置为“开发模式”。这是您通常编写和调试应用程序,运行单元测试(使用Run as .../JUnit测试)或在Web应用程序服务器(作为.../Server应用程序运行)上运行的方式。
但是,如果您使用Run as .../Maven build ...或从Run/Debug菜单创建相应的启动配置,那么您可以选择用于启动Maven的JVM,并且所有编译器配置都将受到尊重的方式与它在命令行中受到尊重的方式相同。
所以:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable><!-- path-to-javac --></executable>
<compilerVersion>1.3</compilerVersion>
</configuration>
</plugin>
</plugins>
M2E不会(也不能)使用外部Java编译器,所以它会忽略这些配置参数。 m2仅考虑源/目标maven-compiler-plugin参数。
来自maven项目的JDK合规性级别为派生的,而不是其他方式。换句话说,你需要配置的Maven编译器插件为1.6级合规,然后将的m2eclipse的Eclipse下获得适当的设置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
的pom.xml
是主人,不是m2eclipse的。
更简单的解释。 +1。我开始担心。 maven-2日食问题超过1小时后才回答。帕斯卡尔呢? ;) – VonC 2010-06-13 16:17:46
@VonC LOL!我正在烹饪:)但是感谢+1(还有+1)。 – 2010-06-13 16:28:10
我遇到了一个问题,eclipse忽略了使用此方法设置的源/目标版本(请参阅http://stackoverflow.com/questions/23602622/changed-jdk-version-in-pom-xml-but-eclipse-仍然使用默认-的-1-5)。在这个问题上的意见建议是我需要手动更改eclipse的设置,这似乎不同意你的答案。有什么改变,或者我做错了什么? – Jules 2014-05-18 11:09:14
总之,我在项目上做了一个mvn eclipse:eclipse
,并在Eclipse中对项目进行了F5刷新,并且正确配置了Java合规性设置。
我的设置如下。使用开普勒。在Eclipse的首选项中配置为默认的Java 1.7(正如前面提到的,似乎忽略了pom.xml中的任何内容)。我将一堆Maven项目导入Eclipse。所有都显示为Java合规性级别1.4,甚至项目的构建路径列出了Java 1.4运行时。我仔细检查1.7是否正确指定在POM中。XML通过请求在命令行上有效POM确认设置是在POM存在以及是否正确:
mvn help:effective-pom -Doutput=eff.xml
这表明了正确的设置存在:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<fork>true</fork>
</configuration>
</plugin>
猜测的问题是与导入部分m2e插件,在Eclipse中显示的版本是: 1.4.0.20130601-0317
- 1. Eclipse一直忘记JDK合规性,将它设置为1.6
- 2. 为Eclipse设置JDK
- 3. HIPAA合规性云服务器设置
- 4. cglib编译器jdk合规
- 5. 为什么WebSphere 6.1(JDK 1.5兼容)将我的JSP编译为JDK 1.4?
- 6. java的URI变化JDK 1.4 VS JDK 1.5
- 7. 如何将jar文件从jdk 1.4升级到jdk 1.6?
- 8. 为.NET程序集设置CLS合规性
- 9. 使用AMP HTML,将链接规范href属性设置为磅(#)是否合法?
- 10. JDK 1.4的SSLEngine的实现?
- 11. 运行Tomcat 5.5与JDK 1.4
- 12. 配置m2eclipse:“Eclipse运行在JRE中,但需要JDK”
- 13. 将JAVA_HOME设置为JDK位置mac osx 10.9.5
- 14. 设置JDK - 错误
- 15. 更改jdk合规性级别后生成路径错误
- 16. Django 1.4配置设置
- 17. 特定端口的Apache配置设置(PCI合规性)
- 18. 将属性设置为com.google.appengine.api.datastore.Entity
- 19. 将属性设置为类
- 20. 即使在安装JDK 7时,将Mac Lion(10.7.5)默认设置为Java JDK 6
- 21. Eclipse JDK设置如何影响系统的JDK设置
- 22. 无法为jdk设置PATH变量
- 23. 如何在m2eclipse中设置一个空的mvn属性?
- 24. m2eclipse不尊重更新策略设置
- 25. 设置的m2eclipse与Eclipse Galilio(3.5)
- 26. 将jQueryMobile 1.4按钮设为1.3
- 27. 在Tomcat 5.5上将JSP页面语法设置为JDK 1.5
- 28. 找不到JDK将JAVA_HOME变量设置为
- 29. 将属性设置为最后位置
- 30. 石英与jdk版本1.4的兼容性
@VonC @Pascal Thivent:感谢您的解释。但是,我注意到,m2eclipse在pom.xml文件中没有指定默认代码级别为1.4,而IntelliJ或NetBeans的Maven插件选择系统的JRE级别,这更符合我的想法。 – 2010-06-17 02:29:37