【问题标题】:How to tell compiler to use openjdk 11 via pom.xml如何通过 pom.xml 告诉编译器使用 openjdk 11
【发布时间】:2019-06-18 07:16:33
【问题描述】:

如何在 pom 文件中配置 OpenJDK 11。

<properties>
  <maven.compiler.plugin.version>3.8.0</maven.compiler.plugin.version>
  <maven.compiler.target>11</maven.compiler.target>
  <maven.compiler.source>11</maven.compiler.source>
</properties>

【问题讨论】:

  • 不能配置OpenJDK 11,可以配置maven使用java11,是使用Oracle Java还是OpenJDK取决于你的系统中安装的是哪一个并在您的 ide(或路径,如果您使用 CLI)中配置。 maven.apache.org/plugins/maven-compiler-plugin/examples/…
  • 不能在pom.xml中设置。如果您使用任何 IDE 来构建 maven 项目,请更改您喜欢使用的 JDK 版本。
  • 感谢您的回复但是如果我在 pom 中配置为 11 意味着收到错误。 [错误] 无法执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project pangolin: Fatal error compile: invalid target release: 11 -> [Help 1]跨度>

标签: java maven java-11 maven-compiler-plugin


【解决方案1】:

问题可能在于您用于运行 Maven 的 Java 版本。请参阅此处的讨论:

Unable to compile simple Java 10 / Java 11 project with Maven

如果您想让 Maven 识别目标版本 10 或 11,您必须首先使用 Java 11 运行 Maven。通过执行 mvn --version 检查 Maven 使用的 Java 是否正确。

【讨论】:

    【解决方案2】:

    这里有一个更高级的示例,它允许您在主 Java 版本为 8 时编译 Java 11。我的大多数项目仍然是 Java 8,所以我觉得它很有用。

    <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>11</release>
                    <fork>true</fork>
                    <executable>C:\Program Files\Java\jdk-11.0.2\bin\javac</executable>
                </configuration>
            </plugin>
    

    【讨论】:

    • 这个设置对我不起作用。我有相同的(主 java 8 和 11 中的单个子模块)。编译器插件只是失败而没有错误,如果我尝试重新运行插件触发的命令,它实际上可以工作
    • 这是唯一对我有用的东西,当我点击 maven 上的重新导入按钮时,所有其他建议都失败了,iml 文件会切换回来。非常感谢
    猜你喜欢
    • 2022-09-24
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 2021-06-30
    相关资源
    最近更新 更多