【问题标题】:How to make Maven use Eclipse workspace default JRE?如何让 Maven 使用 Eclipse 工作区默认的 JRE?
【发布时间】:2012-09-01 13:53:58
【问题描述】:

我正在使用 Spring Tool Suite 和 m2e 将我们现有的一些项目转换为 Maven 项目。有问题的项目使用 jdk1.6.0_20,它在 Eclipse 中被命名为 [jdk1.6]。但是,当我执行 Maven -> Update 项目时,它会用标准 [JavaSE-1.6] 替换该 jre。虽然它们似乎指向相同的库,但名称的更改会导致一系列异常,例如:

访问限制:WindowsPopupMenuSeparatorUI 类型不是 由于对所需库 C:\Program 的限制而可访问 文件\Java\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 中的特定工作区替换它?

【问题讨论】:

    标签: java eclipse maven m2e


    【解决方案1】:
    1. 进入项目的配置构建路径并转到库选项卡。
    2. 删除 JRE 系统库
    3. 单击“添加库...”并选择“工作区默认 JRE”

    这将为您提供当前的 JRE,而不是指定特定的 JRE

    【讨论】:

    • 我确实选择了它,但是当我更新项目时 Maven 会更改该属性。它将工作区默认设置替换为特定的 JRE。
    • Hmmm.. 然后检查 pom 是否有对编译器级别的硬编码引用。
    【解决方案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 版本),ma​​ven 可能会选择 jre,然后抱怨它需要 JDK。在 Eclipse 中使用 Maven > Update Project 后可能会发生这种情况。

    要解决这个问题,在 Eclipse 中,右键单击 JRE System Library > Properties > Environments 并选择 JavaSE-1.8。如果您的系统中有多个兼容的 JRE,请勾选 jdk1.8.x > OK > 选择 JavaSE-1.8 (jdk1.8.x) 作为执行环境 > OK

    现在 maven 应该选择 Java 1.8 版本,Eclipse 会告诉 maven 使用 jdk1.8 作为这个 java 版本的默认 JRE。

    【讨论】:

      【解决方案3】:

      事实证明,Maven 似乎没有办法做到这一点。相反,我在 Eclipse 设置中将错误更改为警告,同时与违规代码的所有者一起解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-25
        • 1970-01-01
        • 2011-10-26
        • 2012-03-23
        • 1970-01-01
        • 1970-01-01
        • 2010-12-16
        • 1970-01-01
        相关资源
        最近更新 更多