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

时间:2014-09-16 00:24:33

标签: maven maven-3

以下是我的项目结构:

Master
|
|--A
|--B
|--C

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 clean install

在所有模块中构建并运行测试:Master,A和B.

2 个答案:

答案 0 :(得分:1)

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

假设您有以下结构:

Parent
|
|---ModuleA
|---ModuleB (Depends on ModuleC)
|---ModuleC

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

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

答案 1 :(得分:0)

您可以通过在A和B的pom.xml中指定来跳过测试。

请参阅:http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-test.html