【问题标题】:Force Maven to Fail if Java Runtime is Above A Given Version如果 Java 运行时高于给定版本,则强制 Maven 失败
【发布时间】:2021-07-28 15:12:58
【问题描述】:

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

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

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

这只是一个权宜之计,以避免人们发送关于由于使用 JDK 11+ 而无法编译的恐慌电子邮件,我不能指望每个人都在他们的 toolchains.xml 中设置自己的 JDK。

【问题讨论】:

    标签: java maven


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2011-10-28
      • 2021-12-19
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 2015-11-22
      • 1970-01-01
      • 2021-07-16
      相关资源
      最近更新 更多