Maven:构建所有依赖项,但在特定模块上运行测试

use*_*008 6 maven-3 maven

以下是我的项目结构:

Master
|
|--A
|--B
|--C
Run Code Online (Sandbox Code Playgroud)

C 取决于 A、B 和 Master。我想先编译 Master、A、B 然后是 C,但运行仅存在于 C 模块中的测试。

我想要一个也可以在 Jenkins 中使用的命令。

我浏览了http://www.jayway.com/2013/06/09/working-efficiently-with-maven-modules/但使用

mvn -pl :C -am 全新安装

在所有模块中构建和运行测试:Master、A 和 B。

Oll*_*ula 4

不可能使用单个命令为子模块运行不同的目标。

假设您有以下结构:

Parent
|
|---ModuleA
|---ModuleB (Depends on ModuleC)
|---ModuleC
Run Code Online (Sandbox Code Playgroud)

现在,如果您从根 pom (Parent)运行mvn clean install -pl :ModuleB-am ,您可以看到它构建了 Parent、ModuleC 和 ModuleB。

要么以不同的方式重新组织你的代码库,要么运行如下所示的代码:mvn clean install -pl :ModuleB -Dmaven.test.skip=true && mvn test -pl :ModuleB