我们如何访问 pom.xml 中当前安装的 java 版本。并将其设置为 Maven 属性。 当我们经常更改 Java 版本时,有什么方法可以在 Maven 属性中检索它。
我想做这样的事情
<project>
...
<properties>
<installedJava>${currentJavaVersion}</installedJava>
</properties>
...
</project>
我看到一些建议使用
mvn -version
命令了解 java 版本的答案。但它在构建时为我们提供了命令 shell 中的版本,而不是 maven 中的版本。
现在我更想知道我们是否可以只检索主要版本。像“17.0.6”中的“17”
使用 Java 内置系统属性
java.version
参考https://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html
您可以使用 Maven Enforcer 插件检索当前安装的 Java 版本并将其设置为 Maven 属性。以下是您的操作方法:
1.将 Maven Enforcer 插件添加到您的 pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M2</version>
<executions>
<execution>
<id>enforce-java-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>${java.version}</version>
</requireJavaVersion>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
2.在pom.xml的部分定义${java.version}属性:
<project>
...
<properties>
<java.version>1.8</java.version>
</properties>
...
</project>
3.运行mvn validate命令获取当前安装的Java版本并将其设置为${java.version}属性:
mvn validate
如果安装的 Java 版本与 pom.xml. 中定义的 ${java.version}
属性不同,构建将失败您还可以使用 java.version 系统属性在构建时设置 ${java.version} 属性的值:
mvn -Djava.version=11 validate
这会将 ${java.version} 属性设置为 11 并验证当前安装的 Java 版本也是 11.