如何在pom.xml中获取Java版本并设置为Maven属性及提取主版本号
在pom.xml中获取当前Java版本并设置为Maven属性
直接获取完整Java版本
Maven本身自带内置系统属性${java.version},这个值就是Maven运行时所用的JDK版本(也就是你当前切换后的已安装Java版本),直接在pom的properties里引用即可:
<project> ... <properties> <installedJava>${java.version}</installedJava> </properties> ... </project>
提取Java主版本号(比如从17.0.6拿到17)
如果只需要主版本号,使用build-helper-maven-plugin就能解析${java.version}并提取主版本:
- 添加插件配置
在pom的<build><plugins>节点中加入以下插件配置:
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.3.0</version> <executions> <execution> <id>parse-java-version</id> <goals> <goal>parse-version</goal> </goals> <configuration> <property>java.version</property> <resultPropertyPrefix>parsed.java.</resultPropertyPrefix> </configuration> </execution> </executions> </plugin> </plugins> </build>
- 引用提取后的主版本
插件执行后会生成${parsed.java.majorVersion}属性,直接在properties中使用即可:
<properties> <installedJava>${java.version}</installedJava> <installedJavaMajor>${parsed.java.majorVersion}</installedJavaMajor> </properties>
验证属性是否生效
运行以下命令可直接查看属性值:
- 查看完整Java版本:
mvn help:evaluate -Dexpression=installedJava -q -DforceStdout - 查看主版本号:
mvn help:evaluate -Dexpression=installedJavaMajor -q -DforceStdout
补充说明:mvn -version显示的Java版本和${java.version}完全一致,因为Maven就是基于当前切换后的JDK运行的,所以该属性可以准确代表你当前已安装的Java版本。
内容的提问来源于stack exchange,提问作者Harshit Panchal
相关产品推荐
相关产品推荐

