如何在 pom.xml 中获取当前的 java 版本

问题描述 投票:0回答:2

我们如何访问 pom.xml 中当前安装的 java 版本。并将其设置为 Maven 属性。 当我们经常更改 Java 版本时,有什么方法可以在 Maven 属性中检索它。

我想做这样的事情

<project>
...
 <properties>
    <installedJava>${currentJavaVersion}</installedJava>
  </properties>
...
</project>

我看到一些建议使用

mvn -version
命令了解 java 版本的答案。但它在构建时为我们提供了命令 shell 中的版本,而不是 maven 中的版本。

现在我更想知道我们是否可以只检索主要版本。像“17.0.6”中的“17”

java maven pom.xml
2个回答
1
投票

0
投票

您可以使用 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.

© www.soinside.com 2019 - 2024. All rights reserved.