以下是我的项目结构:
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.
答案 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