m2eclipse将JDK合规性设置为1.4

Jih*_*ine 9 eclipse maven-2 m2eclipse

使用eclipse 3.5,当我创建一个新的maven项目时,m2eclipse自动将J2SE1.4添加到库,将Compiler Compliance Level添加到1.4(项目属性> Java编译器).我的JRE系统库是1.6,我的默认编译器合规级别是1.6.我甚至没有安装1.4.我可以让m2eclipse使用我的默认设置并阻止它修改项目设置吗?

Von*_*onC 6

它应该遵循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>
Run Code Online (Sandbox Code Playgroud)

(即使如此线程所述,它也不适用于aspect-j)

这个帖子让我们想起了eclipse中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>
Run Code Online (Sandbox Code Playgroud)

m2e没有(也不能)使用外部java编译器,所以它只会忽略这些配置参数.m2仅考虑源/目标maven-compiler-plugin参数.