使用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
。
参考
解决问题的过程
待更新