docker-maven执行测试类报maven-surefire-plugin failure错误的解决办法

使用gitlab ci配置maven runner做junit的单元测试,执行时报错,但打包并不会报错。

错误信息摘要

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test (default-test) on project business-security-perception: There are test failures.
...
[ERROR] org.apache.maven.surefire.booter.SurefireBooterForkException: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
...
Error occurred in starting fork, check output in log

解决方案

因为debian jdk 8u181-b13-2~deb9u1的docker镜像存在bug,会导致Maven surefire崩溃,而我使用的maven是docker.io/maven:3.6.0-jdk-8,这个镜像的基础镜像是openjdk:8-jdk,就是基于debian jdk 8u181-b13-2~deb9u1的镜像,因此出现了这个错误。

解决方案是更换maven镜像为docker.io/maven:3.6.0-jdk-8-alpine,该镜像为alpine jdk 8.191.12-r0

参考

  • Bug#911925: openjdk-8-jdk: Maven surefire crashes after update to 8u181-b13-2

解决问题的过程

待更新

你可能感兴趣的:(docker-maven执行测试类报maven-surefire-plugin failure错误的解决办法)