编译致命错误:错误:目标版本无效:17

问题描述 投票:0回答:1

我正在尝试通过 Jenkins 构建一个项目,但我不断收到此错误:

[错误]执行目标失败 org.apache.maven.plugins:maven-compiler-plugin:3.8.1:编译 (默认编译)在项目 my-project 上:编译致命错误:错误: 无效目标版本:17 -> [帮助 1]

我尝试在 pom.xml 中分配源版本和目标版本,但行不通。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>${maven-compiler-plugin.version}</version>
      <configuration>
         <target>17</target>
         <source>17</source>
      </configuration>
</plugin>

mvn --版本输出:

Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2022.3.3\plugins\maven\lib\maven3
Java version: 17.0.8, vendor: Eclipse Adoptium, runtime: C:\Program Files\Eclipse Adoptium\jdk-17.0.8.7-hotspot
Default locale: en_US, platform encoding: UTF-8
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

事实上,如果我将版本的源和目标指定为 1.8,它将正确构建,但该项目使用的是 Java 17。

   <java.version>17</java.version>

我还可以尝试其他哪些修复方法来使其发挥作用?

java maven jenkins-pipeline sonarqube
1个回答
0
投票

我认为带有 maven-compiler-plugin 的 java 8 和带有 maven-compiler-plugin 的 java 17 的配置是不同的定义方式。

对于java 8及更低版本如下,

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
    </configuration>
  </plugin>

对于java 9+版本,配置如下,

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
      <release>8</release>
    </configuration>
  </plugin>

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.