java - 使用 maven-compiler-pugin 2.2 编译 Java 11 代码

标签 java compiler-errors maven-2 maven-compiler-plugin java-11

我尝试使用 maven-compiler-plugin 2.2 编译 Java 11 代码,但出现以下错误:

[INFO] 2 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
\projects\testoldmaven\src\main\java\Main.java:[10,14] error: cannot find symbol
\projects\testoldmaven\src\main\java\Main.java:[11,8] error: cannot find symbol

我想知道原因是否是我做错了什么,或者问题是普遍性的,Maven 2根本不支持Java 11。或者是否有任何解决方法可以帮助我使用 Maven 2 编译 Java 11 代码? 我试图搜索任何可靠的文章,可以直接声明 Maven 2 不支持 Java,或者运行 Java 11 代码的任何最低 Maven 版本要求,或者可以使用 maven-compler-plugin 2 执行的任何最高 Java 版本。 x,但找不到任何有用的东西。

代码本身只是一些 Java 11 特定片段的简单测试:

public static void main(String[] args) {
    Optional<Integer> value = Optional.empty();
    final var id = 123;
    var text = "This is the test of var & repeat\r\n";
    System.out.println(text.repeat(2));
    System.out.println(id * text.lines().count());
}

我的 pom.xml 看起来像这样:

<groupId>1.0</groupId>
<artifactId>test-old-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.2</version>
            <!--<version>3.6.1</version>-->
        </plugin>
    </plugins>
</build>
<properties>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.release>11</maven.compiler.release>
</properties>

如果有人能阐明我的问题,那就太好了。感谢您提前提供的任何帮助。

最佳答案

通过设置<maven.compiler.source>1.8</maven.compiler.source>你本质上是通过-source 1.8javac编译器。

这告诉编译器您想要显式地将输入源代码限制为 Java 1.8 语法和语言。由于您使用的是 Java 8 中未定义的语言结构(例如 var ),它将会失败。

正如您指定的 release同样,source 的值似乎是优先。

关于java - 使用 maven-compiler-pugin 2.2 编译 Java 11 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53209009/

相关文章:

maven-2 - Maven - 在 jar 中包含依赖库而不解压依赖项?

java - Vert.x 将 http 重定向到 https

java - 什么是10001st质数?为什么我的Java解决方案会给出错误ArrayIndexOutOfBoundsException?

java - Java类错误

java - java.lang.String无法转换为int…不确定我在做什么

visual-studio-2010 - XNA 4.0 Visual Studio 2010错误

java - 在没有 mvn/poms 的情况下从 maven repo 下载工件的实用程序

java - MyBatis: boolean 参数:MyBatis 正在使用 Getter

java - Imagej 获取要显示的摘要并提取其值

maven-2 - 如何在 JUnit 测试中检索 Maven 属性?