如何让Maven使用Eclipse工作区默认JRE?

时间:2012-09-07 16:43:31

标签: java eclipse maven m2e

我正在使用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中的特定工作区替换它?

3 个答案:

答案 0 :(得分:4)

  1. 进入项目的“配置构建路径”,然后转到“库”选项卡。
  2. 删除JRE系统库
  3. 点击“添加图书馆...”并选择“工作区默认JRE”
  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设置中的警告。