java - 即使 JAVA_HOME 设置为 JDK11,maven 也采用 Java 1.5 默认值
问题描述
我正在使用 JDK 11,我的应用程序有大约 20 个项目。现在我希望我的 maven 选择 JAVA_HOME 而不是使用 maven-compiler-plugin 或属性更改所有 pom.xml。我已将 JAVA_HOME 设置为mvn -v的 JDK 11 输出
OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 19:21:28+0530)
Maven home: /home/krawler/apache-maven-3.0.5
Java version: 11.0.4, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-11-openjdk-11.0.4.11-0.el7_6.x86_64
Default locale: en_IN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.1.3.el7.x86_64", arch: "amd64", family: "unix"
但是当我运行mvn clean install时,出现以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project mavenKwlCommonLibs: Compilation failure: Compilation failure:
[ERROR] error: Source option 5 is no longer supported. Use 6 or later.
[ERROR] error: Target option 1.5 is no longer supported. Use 1.6 or later.
解决方案
您使用的 JDK 和您编译的 Java 版本之间存在差异。您可以使用 JDK 11(只是一个示例)很好地为 Java 8 进行编译。
你需要设置
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
在你的 POM 到你想要构建的 Java 版本(另见https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html)
对于 Java 11,还请查看https://stackoverflow.com/a/51586202/927493。
推荐阅读
- c++ - C ++:指向对象的未分配指针可以反复安全地取消引用......为什么?
- c# - 将数组附加到匿名数组的问题 - C#
- html - 如何让 Modal 超过第 1 页的数据表和 Bootstrap 4
- python - 如果 python 列表包含两个连续的零,则拆分它
- c++ - 返回 const 指针会在虚幻引擎中引发编译错误?
- python - 使用熊猫更改excel单元格的颜色
- python - PIL:如何使用 ImageGrab 获得全范围的颜色
- java - 如何使用 onClick 侦听器将字符串从 TextView 传输到主要活动
- azure - 使用 Azure AD auth 对 Azure SQL DB 的基于令牌的身份验证支持
- python - Python Numpy在其他数组给出的索引上优化计算数组的平均值