我有一个包含三个模块的Maven构建。
回归测试不仅仅是模块B的一部分的原因是它们应该能够针对A和B的多个版本运行以确保向后兼容性。我希望能够从顶级构建运行deploy
来创建A.jar和B.jar,但不能创建C.jar。这可能吗?
答案 0 :(得分:8)
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
如果您根本不需要创建JAR,则可能需要再添加两个属性:
<jar.skipIfEmpty>true</jar.skipIfEmpty>
<maven.install.skip>true</maven.install.skip>
请注意,您仍然需要maven.deploy.skip
,否则部署期间构建将失败。
答案 1 :(得分:6)
maven deploy插件包含一个skip选项,可防止工件部署。
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
您可以尝试将其添加到项目C。
答案 2 :(得分:3)
对C使用pom
类型的包装并重新绑定所有必需的插件:
<project>
...
<packaging>pom</packaging>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>process-test-resources</id>
<phase>process-test-resources</phase>
<goals>
<goal>testResources</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>
答案 3 :(得分:2)
以下用于模块C:
<packaging>pom</packaging>