【发布时间】:2021-05-22 12:49:32
【问题描述】:
我正在尝试在 centOS 8 上构建一个 maven 项目。我希望 maven 使用 Java 版本 15。当我运行 mvn package 时出现以下错误:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile
(default-compile) on project systembrett-backend: Fatal error compiling: invalid target release: 15 -> [Help 1]
所以我怀疑 maven 使用了错误的 Java 版本,因为当我为调试日志执行 mvn package -X 时,它以:
Apache Maven 3.5.4 (Red Hat 3.5.4-5)
Maven home: /usr/share/maven
Java version: 1.8.0_275, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-1.el8_3.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-240.1.1.el8_3.x86_64", arch: "amd64", family: "unix"
看起来,maven 使用的是 Java 1.8 版。
但是mvn -version 说:
Apache Maven 3.5.4 (Red Hat 3.5.4-5)
Maven home: /usr/share/maven
Java version: 15.0.2, vendor: AdoptOpenJDK, runtime: /opt/jdk-15.0.2+7
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-240.1.1.el8_3.x86_64", arch: "amd64", family: "unix"
JAVA_HOME 是 /opt/jdk-15.0.2+7,PATH 是 /opt/jdk-15.0.2+7/bin:/home/username/.local/bin:/home/username/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin。
我认为 maven 是通过检查 JAVA_HOME 来选择 java 版本,但显然它正在使用其他版本进行构建。有谁知道如何告诉 Maven 正确的版本?
谢谢!
【问题讨论】:
-
也许你的 pom.xml 覆盖了maven-compiler-plugin configuration?