java - 在 Maven 中设置 Java 版本,系统 Java 版本为 11.0
问题描述
我目前在本地机器上使用 jdk 版本为 11,使用 JAVA_HOME 设置。
我需要运行一个 java_version 为 9 的 maven 项目。为了做同样的事情,请参考https://www.baeldung.com/maven-java-version
这是我的 pom.xml 文件
<properties>
<java.version>8</java.version>
<maven.compiler.plugin.version>3.8.0</maven.compiler.plugin.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin.version}</version>
<configuration>
<release>8</release>
</configuration>
</plugin>
</plugins>
</build>
然后我运行命令“mvn clean install”,生成的 jar 文件在其清单文件中的 java-version 为 11。这是生成的 jar 的清单文件的片段
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven 3.5.0
Built-By: test
Build-Jdk: 11.0.2
为什么它仍然选择java版本为11,为什么不是8?
解决方案
您可以随时为特定项目显式更改 java 版本,以便它与您想要的版本相编译。
使用:JAVA_HOME=/path/to/jdk1.8/ mvn build
除了上述之外,您还可以在 pom.xml 中明确设置版本。
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
推荐阅读
- permissions - 在共享的 Windows 主机中显示公共文件夹文件
- kubernetes - 如何创建自己的 Kubernetes Strimzi Operator 的 Kafka 用户证书和密钥?
- reactjs - 反应本机问题,将数据保存到 Firestore
- security - asp.net 核心身份 cookie 重放攻击
- asp.net - 找不到“/null”的控制器路径或未实现 IController
- java - 从多图列表中删除元素的最佳方法
- amazon-web-services - 我可以将 EBS 快照保留多长时间?
- kotlin - FreeMarker 在 Ktor 中找不到基本目录
- django - Python3 和 django3 谷歌业务 API 错误
- python - N00b 问题:ValueError:尝试在非包中进行相对导入