【发布时间】:2020-05-02 13:09:10
【问题描述】:
我下载了 open jdk 并且在 maven 构建方面遇到了一些问题,特别是 maven-enforcer-plugin。使用插件版本 1.4.1。
Enforcer 插件正在尝试强制执行 JDK 版本,例如
<requireJavaVersion>
<version>[13,)</version>
<message>[ERROR] OLD JDK [${java.version}] in use. Need JDK 13.0 or newer</message>
</requireJavaVersion>
Enforcer 插件因以下错误而崩溃
Caused by: java.lang.StringIndexOutOfBoundsException: begin 0, end 3, length 2
at java.lang.String.checkBoundsBeginEnd (String.java:3319)
at java.lang.String.substring (String.java:1874)
at org.apache.commons.lang.SystemUtils.getJavaVersionAsFloat (SystemUtils.java:1122)
at org.apache.commons.lang.SystemUtils.<clinit> (SystemUtils.java:818)
at org.apache.maven.plugins.enforcer.RequireJavaVersion.execute (RequireJavaVersion.java:52)
at org.apache.maven.plugins.enforcer.EnforceMojo.execute (EnforceMojo.java:193)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
花了很多时间,我终于弄清楚JDK报告的版本没有小数点。这导致插件失败。
java -version
openjdk version "13" 2019-09-17
OpenJDK Runtime Environment (build 13+33)
OpenJDK 64-Bit Server VM (build 13+33, mixed mode, sharing)
在这种情况下,解决方法是什么?
【问题讨论】:
-
maven-enforcer-plugin 3.0.0-M3 还是这样吗?
-
@JFMeier,是的,面临同样的问题
-
这与提供JVM版本的新方式有关:owsiak.org/java-9-10-and-macos-issues-with-java-version
标签: java maven maven-plugin