Я скачал open jdk и у меня возникли некоторые проблемы с сборкой maven, в частности, maven -forcer-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)
Каким будет обходной путь в этой ситуации?