我有三個模塊的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