带有JDK11的maven:javac:无效标志:--release

Hen*_*ang 7 java maven java-11

我正在尝试使用 java 11 设置一个简单的 maven 项目。由于我希望将 JAVA_HOME 保持为版本 8,因此我正在maven-toolchains-plugin使用 jdk11 使 maven 用于该项目。

虽然 maven 成功找到了 jdk-11.0.1 的匹配工具链,但我不断收到“javac: invalid flag: --release”。我究竟做错了什么?

以下是插件配置:

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
      <release>11</release>
    </configuration>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-toolchains-plugin</artifactId>
    <version>1.1</version>
    <executions>
      <execution>
        <goals>
          <goal>toolchain</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <toolchains>
        <jdk>
          <version>11</version>
        </jdk>
      </toolchains>
    </configuration>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

工具链定义为:

 <toolchain>
   <type>jdk</type>
   <provides>
     <version>11</version>
     <id>JavaSE-1.11</id>
   </provides>
   <configuration>
     <jdkHome>C:\Program Files\Java\jdk-11.0.1\bin</jdkHome>
   </configuration>
<toolchain>
Run Code Online (Sandbox Code Playgroud)

Hen*_*ang 6

正如我发现的那样,配置很好。问题是jdkHomeintoolchains.xml是指向\jdk-11.0.1\bin方向而不是\jdk-11.0.1直接.....使用<jdkHome>C:\Program Files\Java\jdk-11.0.1</jdkHome>解决了问题..