使用 eclipse 3.5,当我创建一个新的 maven 项目时,m2eclipse 会自动将 J2SE1.4 添加到库中,并将编译器合规级别添加到 1.4(项目属性> Java 编译器)。我的 JRE 系统库是 1.6,我的默认编译器合规级别是 1.6。我什至没有安装1.4。我可以让 m2eclipse 使用我的默认设置并阻止它修改项目设置吗?
3 回答
它应该遵循以下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>
(即使,如this thread中所述,它不适用于aspect-j)
这个线程提醒我们关于 eclipse 中的 m2eclipse 和 maven 脚本之间的区别:
值得一提的是,这只适用于m2eclipse根据pom.xml中的配置配置JDT、AJDT、WTP等Eclipse工具时的“开发模式”。这就是您通常编码和调试应用程序、运行单元测试(使用 Run as.../JUnit 测试)或在 Web 应用程序服务器上运行(运行为.../服务器应用程序)的方式。
但是,如果您使用 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 参数。
JDK 合规级别源自maven 项目,而不是相反。换句话说,您需要配置 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。
总之,我mvn eclipse:eclipse
在 Eclipse 中对项目和 F5 项目进行了刷新,这正确配置了 Java 合规性设置。
我的设置如下。使用开普勒。Java 1.7 在 Eclipse 的首选项中配置为默认值(如前所述,似乎无论如何都会被忽略,以尊重 pom.xml 中的任何内容)。我将一堆 Maven 项目导入 Eclipse。所有这些都显示为 Java 合规级别 1.4,甚至项目的构建路径也列出了 Java 1.4 运行时。我通过在命令行上请求有效的 pom 来确认 pom.xml 中的设置是否存在并且在 pom 中正确,从而再次检查了 pom.xml 中是否正确指定了 1.7:
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