Maven 父模块中的汇编插件是否可以使用“ModuleSet”聚合pom子模块的二进制工件?

Maven 父模块中的汇编插件是否可以使用“ModuleSet”聚合pom子模块的二进制工件?,maven,Maven,在多模块项目中: parent |- child1 (packaging:pom) parent是否可以聚合由child1生成的工件 在经过两天多的测试和阅读文档后,我不确定是设计、bug还是我自己没有发现明显的问题 使用: $mvn --version Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100) Maven home: /usr/share/maven-bin-3.0 Java version: 1.8.0_66, ve

在多模块项目中:

parent
  |- child1 (packaging:pom)
parent
是否可以聚合由
child1
生成的工件

在经过两天多的测试和阅读文档后,我不确定是设计、bug还是我自己没有发现明显的问题

使用:

$mvn --version
Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)
Maven home: /usr/share/maven-bin-3.0
Java version: 1.8.0_66, vendor: Oracle Corporation
备注:

  • 在下面的示例中,将child1包装从
    pom
    更改为
    jar
    确实可以按预期工作
  • 当前错误:
[错误]无法在项目父级上执行目标org.apache.maven.plugins:maven程序集插件:2.6:single(生成模块):无法创建程序集:创建程序集存档捆绑包时出错:必须至少设置一个文件。->[帮助1]

  • 我附加了child1的pom的第二个版本,它也不起作用,我已经设置了pom打包模块不能使用的所有jar打包绑定,也就是说,对于packaging=pom或packaging=jar,它的pom是相同的。这也不行

示例代码 (完整代码:)

父pom:/pom.xml
。。。
父母亲
聚甲醛
父母亲
孩子1
maven汇编插件
2.6
src/assembly/bundle.xml
假的
构建模块
包裹
单一的
child1 pom:child1/pom.xml
。。。
孩子1
罐子
孩子1
maven汇编插件
2.6
src/assembly/module.xml
构建模块
包裹
单一的
父程序集:/src/assembly/bundle.xml

捆
迪尔
假的
假的
真的
模块
假的
我的/output/目录
假的
child1程序集:src/assembly/module.xml

模块
拉链
假的
src/main/java
模块-${project.artifactId}/java
假的
${project.build.directory}
模块-${project.artifactId}/lib
${project.build.finalName}.jar
child1“扩展”pom:/child1/pom.xml (模拟
jar
包装)

。。。
孩子1
罐子
孩子1
maven资源插件
2.5
默认测试资源
过程测试资源
测试资源
默认资源
过程资源
资源
maven jar插件
2.3.2
默认jar
包裹
罐子
maven编译器插件
2.3.2
默认编译
编译
编译
默认测试编译
测试编译
测试编译
maven surefire插件
2.10
默认测试
测试
测试
maven汇编插件
2.6
src/assembly/module.xml
构建模块
包裹
单一的

父级不能导致先执行它,因此结果它不起作用。如果你想拥有一个发行版存档等,你应该创建一个单独的模块,比如
app dist
,它包含定义,并且依赖于你想要打包的所有工件,以获得正确的构建顺序,这是Maven和依赖项自动预测的。请看这里:@khmarbaise谢谢,但当孩子们是包装罐的时候,为什么它会起作用呢?此外,maven目前解决了正确的反应堆构建顺序,即child1,parent,因此我有点不愿意接受“首先执行父级”的断言。那么您使用哪一版本的maven?@khmarbaise我还试图避免显式声明我要组装的模块的需要:我发现这太麻烦且容易出错。它违背了使用
模块集
使用程序集的目的。在我的“真正的”多模块项目中,我有几个模块,它们只帮助构建,不能包含在程序集中。其余模块必须包括在内。它们相当多,我不断地添加新的。我不想保留一个依赖项列表,每当新模块诞生时,我就必须更新这些依赖项。@khmarbaise
mvn--version:apachemaven 3.0.4(