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

如何仅针对源码变更的Maven子模块运行单元测试?

多模块Maven项目测试执行方案

一、修改ChildA后仅运行其及子模块的测试

直接用Maven的模块选择参数-pl指定目标模块即可,ChildA作为父模块,Maven会自动递归处理它的子模块:

mvn verify -pl ChildA

如果需要更精确指定(比如ChildA是纯pom模块),也可以直接列出所有目标模块:

mvn verify -pl ChildA,ChildA/GrandChildAA,ChildA/GrandChildAB

另外还能通过排除其他模块的方式实现:

mvn verify -pl !ChildB,!ChildB/GrandChildBA,!ChildB/GrandChildBB

二、仅对重新编译的模块运行单元测试

Maven默认的增量编译会跳过无源码变更模块的编译,但测试阶段默认仍会执行所有模块的测试。要实现仅对重新编译模块跑测试,最简便的方式是结合上面的模块选择参数:修改源码后,用-pl指定变更模块(及其子模块)执行verify,Maven只会编译有变更的模块,并仅运行这些模块的测试,完全匹配你的需求。

如果需要更自动化的方式(无需每次手动指定模块),可以结合buildnumber-maven-plugin追踪源码变更,再配置maven-surefire-plugin做条件化测试执行,但这种配置相对复杂,日常使用推荐直接用-pl指定模块的方式,简单高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:18:17