Java 如何让Maven使用Eclipse工作区默认JRE?
我正在使用Spring工具套件和m2e将一些现有项目转换为Maven项目。该项目使用jdk1.6.020,在Eclipse中命名为[jdk1.6]。但是,当我执行Maven->updateproject时,它用标准的[JavaSE-1.6]替换了jre。虽然它们似乎指向相同的库,但名称的更改会导致一系列异常,如: 访问限制:WindowsPopupMenuSeparatorUI类型不正确 由于所需库C:\程序的限制,可访问 Files\Java\jdk1.6.0\u 20\jre\lib\rt.jar My pom.xml具有以下特性:Java 如何让Maven使用Eclipse工作区默认JRE?,java,eclipse,maven,m2e,Java,Eclipse,Maven,M2e,我正在使用Spring工具套件和m2e将一些现有项目转换为Maven项目。该项目使用jdk1.6.020,在Eclipse中命名为[jdk1.6]。但是,当我执行Maven->updateproject时,它用标准的[JavaSE-1.6]替换了jre。虽然它们似乎指向相同的库,但名称的更改会导致一系列异常,如: 访问限制:WindowsPopupMenuSeparatorUI类型不正确 由于所需库C:\程序的限制,可访问 Files\Java\jdk1.6.0\u 20\jre\lib\rt.
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
maven编译器插件
2.3.2
1.6
1.6
有没有办法让Maven/m2e使用默认工作区JRE,而不是用.classpath中的特定工作区替换它
这将为您提供当前的JRE,而不是指定特定的JRE。事实证明,Maven似乎没有办法做到这一点。相反,我将Eclipse设置中的错误更改为警告,同时与违规代码的所有者一起解决问题。将maven编译器插件添加到pom中会迫使maven使用给定版本的Java:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
maven编译器插件
3.3
1.8
1.8
但是如果系统上同时安装了jre和jdk(对于特定的java版本),maven可能会选择jre,然后抱怨它需要jdk。这可能发生在Eclipse中使用Maven>更新项目之后
要解决这个问题,在Eclipse中,右键单击JRE系统库>属性>环境并选择JavaSE-1.8。如果系统中有多个兼容的JRE,请勾选jdk1.8.x>OK>selectjavase-1.8(jdk1.8.x)as Execution environment>OK
现在,maven应该选择Java版本1.8,Eclipse将告诉maven使用jdk1.8作为该Java版本的默认JRE。我确实选择了它,但maven在更新项目时更改了该属性。它用特定的JRE.Hmmm.替换工作区默认设置。。然后检查pom是否具有对编译器级别的硬编码引用。