Ошибка maven-surefire-plugin с OpenJDK 17 на gitlab-ci
Запуск Gitlab CI внезапно начал давать сбой с этим исключением:
/usr/java/openjdk-17/bin/java -Xmx1024m -XX:MaxPermSize=256m -jar /builds/myapp/target/surefire/surefirebooter15709646820034007555.jar /builds/myapp/target/surefire 2021-10-12T20-04-21_120-jvmRun1 surefire10652468672509302756tmp surefire_03968859309758681259tmp
[ERROR] Error occurred in starting fork, check output in log
[ERROR] Process Exit Code: 1
[ERROR] at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:669)
[ERROR] at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:282)
[ERROR] at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:245)
[ERROR] at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1183)
[ERROR] at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:1011)
[ERROR] at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:857)
[ERROR] at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
[ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
[ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
[ERROR] at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
[ERROR] at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
[ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
[ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
[ERROR] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
[ERROR] at org.apache.maven.cli.MavenCli.execute(MavenCli.java:972)
[ERROR] at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:293)
[ERROR] at org.apache.maven.cli.MavenCli.main(MavenCli.java:196)
[ERROR] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[ERROR] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
К сожалению, это не совсем информативно о том, в чем проблема.
Однако я заметил, что он использовал новый openjdk-17. Поэтому я подозревал, что это может быть проблема, связанная с этим. В моем
.gitlab-ci.yml
Я поменял местами
maven:latest
с участием
maven:3-jdk-11
чтобы заставить его оставаться на JDK 11 следующим образом:
#image: maven:latest
image: maven:3-jdk-11
И все работало нормально.
Есть идеи, почему maven-surefire-plugin не удалось на OpenJDK 17?
2 ответа
Какую версию плагина maven-surefire вы используете?
Версия 2.22.2 не поддерживает байт-код Java 17, однако она безупречно работает с версией 3.0.0-M9. Поддержка должна быть как минимум с версии 3.0.0-M5.
Для меня удаление-XX:MaxPermSize=256m
в конфигурации pom.xml Surefire:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M9</version>
<configuration>
<useSystemClassLoader>false</useSystemClassLoader>
<argLine>@{argLine} -Xmx1024m -XX:MaxPermSize=256m</argLine>
</configuration>
</plugin>
, оставив меня с
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M9</version>
<configuration>
<useSystemClassLoader>false</useSystemClassLoader>
<argLine>@{argLine} -Xmx1024m</argLine>
</configuration>
</plugin>
, исправил все мои проблемы