【发布时间】:2012-02-01 09:33:30
【问题描述】:
您好,我需要从主目录中的多模块项目中组装 jar。让我们有一个这样的结构:
MASTER(pom)
|
+-A3(pom)
| +-A1(jar)
| +-A2(jar)
+-B3(pom)
+-B1(jar)
+-B2(jar)
我想要实现的是在MASTER中组装所有jar打包的模块。
jars/
+- A1.jar
+- A2.jar
+- B1.jar
+- B2.jar
目前我通过创建 pom.xml 仅在子模块(A3 和 B3)上实现了良好的分辨率:
<modules>
<module>../A1</module>
<module>../A2</module>
</modules>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/bin.xml</descriptor>
</descriptors>
</configuration>
</plugin>
</plugins>
</build>
和程序集描述符:
<moduleSets>
<moduleSet>
<includes>
<include>org.mycompany:A1</include>
<include>org.mycompany:A2</include>
</includes>
<binaries>
<includeDependencies>false</includeDependencies>
<outputDirectory>jars/${artifactId}</outputDirectory>
<unpack>false</unpack>
</binaries>
</moduleSet>
</moduleSets>
当我这样做时
mvn clean package assembly:assembly
在子模块(A3 或 B3)上,它们似乎可以很好地组装自己的子模块。
我不知道如何在 MASTER 中指定程序集描述符。类似于 A3 和 B3 的描述符不处理它([ERROR] 你必须至少指定一个文件)。我尝试了几个附加标签,例如 includeSubModules... 仍然没有。
【问题讨论】:
-
你的
<dependencies>呢? -
我正在尝试组装我的模块,而不是它们的依赖项
-
也许我错了,但
<module>只是告诉在反应器中添加其他poms,但它不提供任何依赖项。因此,在添加依赖项之前,您不能在任何地方引用这些模块,包括程序集描述符。 -
但如果我将 A1、A2、B1、B2 作为依赖项添加为模块,它们将不会在打包阶段构建 - 只是在存储库中查找,不是吗?
-
显然,如果你想要构建和依赖,你应该添加
<module>和<dependency>。
标签: maven multi-module