java如何尽可能快地运行maven项目的测试?
假设您有一个多项目结构。结构的子集如下图所示
现在,您对运行projectA的测试感兴趣。但你正在发展。本着TDD的精神,您需要反馈回路尽可能快。或者,您可能正在构建服务器上从头开始运行测试
我看到的备选方案有:
maven test
慢,因为maven为每个项目运行阶段compile
和test
李>maven test -pl A
令我惊讶的是,这似乎不起作用,因为maven不会构建项目A(项目C、H和D)的依赖关系。因此,测试编译将/可能失败李>maven test -pl A --also-make
。这有点奏效。然而,maven仍然为projectA依赖的每个项目运行测试。如果让我们假设projectC的测试需要1小时,那么您需要等待多长时间才能最终运行您真正关心的测试李>
我真正想要的是maven尽可能快地运行a的测试。我相信这意味着:
- 编译项目依赖项的所有源代码(C、G和D)李>
- 编译projectA的源代码李>
- 编译projectA的测试代码李>
- 运行项目A的测试代码李>
有没有办法用一个命令来实现这一点
我的理解有什么错误吗
这不是大多数人的共同目标吗?他们如何着手解决这个问题
(p.s.I来自gradle和sbt。在那里,与maven test -pl A
相当的功能正如我在这里描述的那样)
# 1 楼答案
A
的开发需要对依赖模块进行更改(C
、H
、D
),那么您没有正确组织模块。这似乎违反了OOD原则公共关闭原则(CCP):对于(maven工件)也是如此
因此,以下选项是可能的: