我有三个模块的Maven构建。如何让Maven模块不导出jar?
- 模块A输出一个罐子。
- 模块B依赖于A并输出一个罐子。
- 模块C是一组回归测试依赖于A和B.
原因回归测试不只是模块B的部分是,他们应该能够针对A的多个版本运行和B以确保向后兼容。我希望能够从顶层构建中运行deploy
来创建A.jar和B.jar,但不能创建C.jar。这可能吗?下面
我有三个模块的Maven构建。如何让Maven模块不导出jar?
原因回归测试不只是模块B的部分是,他们应该能够针对A的多个版本运行和B以确保向后兼容。我希望能够从顶层构建中运行deploy
来创建A.jar和B.jar,但不能创建C.jar。这可能吗?下面
<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
,否则在部署期间构建将失败。
我冒昧添加了如何禁止创建JAR,以防万一不需要。 – sleske 2015-05-18 13:02:33
用于模块C:
<packaging>pom</packaging>
我试过了。然后我从顶层运行mvn测试,而C的测试不运行。 – 2010-02-05 23:25:17
您可能需要重新组织您的POM的层次结构。例如,您可能需要在顶部使用超级pom,然后使用C作为子模块,然后使用A和B作为C下的子模块。 – 2010-02-05 23:29:48
如果选择pom的打包类型,则需要手动重新绑定所有常用的插件根据下面的帕斯卡答案。你仍然希望C的jar包装,你只需要禁用该模块的部署。萨尔在这里有正确的答案。 – joelittlejohn 2011-02-23 10:48:08
的行家部署插件包含一个skip选项,防止伪像的部署。
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
你可以尝试添加到项目C.
使用pom
类型的包装C和重新绑定所有需要的插件:
<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>
虽然这可能有效,但它相当详细。 Craig P. Motlin的答案提供了一个更好的解决方案。 – sleske 2015-05-18 13:03:22
相关:[什么是避免maven-jar的最好方法?](http://stackoverflow.com/questions/2188746/what-is-the-best-way-to-avoid-maven-jar) – sleske 2015-05-18 13:07:31