You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行mvn install时遭遇maven-surefire-plugin测试目标失败错误

解决Maven Surefire插件“分叉VM未正常终止”构建失败问题

以下是几种常见的解决方案,按优先级尝试:

  • 跳过测试快速构建
    如果只是想先完成构建,暂时跳过测试阶段,执行Maven命令时添加参数:

    mvn clean install -DskipTests
    

    或者在Eclipse的Maven构建配置中,直接在Goals栏填写clean install -DskipTests,右键项目→Run As→Maven build...即可配置。

  • 调整Surefire插件的fork配置
    分叉VM异常通常和插件的fork模式有关,修改pom.xml中的插件配置:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                    <!-- 禁用分叉模式,测试在当前VM运行 -->
                    <forkCount>0</forkCount>
                    <!-- 若怀疑内存不足,可添加JVM参数 -->
                    <!-- <argLine>-Xmx1024m -XX:MaxMetaspaceSize=512m</argLine> -->
                </configuration>
            </plugin>
        </plugins>
    </build>
    
  • 排查测试代码中的System.exit()调用
    检查所有测试类,确认是否存在System.exit(int)代码——这个方法会直接终止JVM,导致Surefire插件报错。如果是测试需要模拟退出行为,可改用JUnit的ExpectedSystemExit规则(JUnit 4)或对应框架的替代方案。

  • 检查JVM崩溃日志与环境一致性
    查看项目target/surefire-reports目录下的日志文件,若存在hs_err_pid*.log文件,说明JVM崩溃,可根据日志定位内存溢出或依赖冲突问题;同时确保Eclipse使用的JDK与Maven配置的JDK版本一致(Window→Preferences→Java→Installed JREs)。

  • 升级Surefire插件版本
    2.19.1版本存在一些已知bug,尝试升级到较新的稳定版本,比如:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M7</version>
    </plugin>
    

内容的提问来源于stack exchange,提问作者zzindal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:25:19