有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如果Java运行时高于给定版本,则强制Maven失败

我有一个遗留项目的情况,如果使用JDK运行时而不是1.8或1.9调用Maven,我需要一个项目失败。原因是当前项目的依赖项曾经是JDK的一部分,但现在不再从JDK 11开始

这不同于为maven插件编译器指定源和目标版本(当前设置为8)

构建已经失败了,抱怨无法解决的依赖关系,但我希望它失败时会出现一条消息,说“您需要使用JDK 8/9运行时”(清晰度永远是王道)

这只是一个权宜之计,以避免人们因使用JDK 11+而对未编译的内容发送恐慌性电子邮件,我不能指望每个人都在他们的工具链中设置自己的JDK。xml


共 (1) 个答案

  1. # 1 楼答案

    您可以使用maven enforcer插件:

    <project>
      [...]
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <version>3.0.0-M3</version>
            <executions>
              <execution>
                <id>enforce-java</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireJavaVersion>
                      <version>[1.8,9]</version>
                    </requireJavaVersion>
                  </rules>    
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      [...]
    </project>
    

    注意:我没有测试范围表达式

    资料来源:https://maven.apache.org/enforcer/enforcer-rules/requireJavaVersion.html