Jenkins上Maven Surefire插件构建失败:分叉VM异常终止
Jenkins中Maven Surefire插件构建失败的解决方案
针对你遇到的maven-surefire-plugin执行测试时forked VM异常终止的问题,可尝试以下解决步骤:
禁用测试进程fork模式
在项目pom.xml的surefire插件配置中添加<forkCount>0</forkCount>,让测试在当前JVM而非独立进程中运行,规避fork相关的兼容性问题:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> <configuration> <forkCount>0</forkCount> </configuration> </plugin> </plugins> </build>调整fork进程的JVM内存参数
若因内存不足导致VM崩溃,可在插件配置中指定更大的堆内存和元空间(Java 11+用Metaspace替代PermSize):<configuration> <argLine>-Xmx1024m -XX:MaxMetaspaceSize=256m</argLine> </configuration>排查测试代码中的
System.exit()调用
检查所有测试类,确认是否存在直接调用System.exit()的代码——这会直接终止forked VM,导致构建失败。若有,替换为抛出测试异常或其他合法终止测试的方式。清理Jenkins工作空间
在Jenkins任务的配置页面,勾选“构建前清理工作空间”选项,删除旧的构建缓存文件,避免残留的surefire临时文件干扰新构建。升级surefire插件版本
你当前使用的2.19.1版本较旧,存在不少已修复的fork相关bug。建议升级至最新稳定版(如3.2.5),更新插件版本后重新执行构建。
内容的提问来源于stack exchange,提问作者Pathfinder
相关产品推荐
相关产品推荐

