我正在使用Spring Tool Suite和m2e将我们现有的一些项目转换为Maven项目。有问题的项目使用jdk1.6.0_20,在Eclipse中命名为[jdk1.6]。当我做Maven时 - >但是,更新项目,它用标准[JavaSE-1.6]取代了jre。虽然它们似乎指向相同的库,但名称的更改会导致一系列异常,例如:
访问限制:WindowsPopupMenuSeparatorUI类型不是 由于对所需库C:\ Program的限制而可访问 文件\爪哇\ jdk1.6.0_20 \ JRE \ lib中\ rt.jar中
我的pom.xml有这个:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
有没有办法让Maven / m2e使用默认工作区JRE而不是用.classpath中的特定工作区替换它?
答案 0 :(得分:4)
这将为您提供当前的JRE,而不是指定特定的JRE
答案 1 :(得分:2)
将maven-compiler-plugin添加到你的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>
然而如果您的系统上同时安装了jre和jdk (对于特定的Java版本), maven可能会选择jre,然后抱怨它需要JDK 。使用Maven后可能会发生这种情况。 Eclipse中的更新项目。
要解决此问题,请在Eclipse中右键单击JRE System Library&gt;属性&gt;环境并选择JavaSE-1.8。如果您的系统中有多个兼容的JRE,请勾选jdk1.8.x&gt;好的&gt;选择JavaSE-1.8(jdk1.8.x)作为执行环境&gt;行
现在maven应该选择Java版本1.8,Eclipse会告诉maven使用jdk1.8作为这个java版本的默认JRE。
答案 2 :(得分:1)
事实证明,似乎没有办法用Maven做到这一点。相反,当我与违规代码的所有者合作解决问题时,我将错误更改为Eclipse设置中的警告。