子模块中的 Maven 程序集 useAllReactorProjects 不起作用

Maven assembly useAllReactorProjects in child module not work

多模块项目的 Maven 程序集插件不收集所有子模块。

这是我的项目的层次结构(根据 maven parent/child):

ss.parent (parent multi module)
   |_ ss.a (parent multi module)
         |_ ss.a.1
         |_ ss.a.2
   |_ ss.b (parent multi module)
         |_ ss.b.2
         |_ ss.b.2
   |_ ss.assembly

ss.parent/pom.xml 包含:

<module>ss.a</module>
<module>ss.b</module>
<module>ss.assembly</module>

这里是ss.assembly/pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>ss</groupId>
    <artifactId>ss.parent</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>sis.assembly</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<description>Produces delivery for MOSS</description>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <descriptor>src/assembly/assembly.xml</descriptor>
            </configuration>
            <executions>
                <execution>
                    <id>create-archive</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>ss</groupId>
        <artifactId>ss.a</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>ss</groupId>
        <artifactId>ss.b</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
</dependencies>

assembly.xml :

<id>assembly</id>
<formats>
    <format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<moduleSets>
    <moduleSet>
        <useAllReactorProjects>true</useAllReactorProjects>
        <includeSubModules>true</includeSubModules>
        <includes>
          <include>*:*</include>
        </includes>
        <binaries>
            <outputDirectory>assembly</outputDirectory>
            <unpack>false</unpack>
        </binaries>
    </moduleSet>
</moduleSets>

我期望的结果是一个包含的程序集:

但是,我只有 ss.a.1.jar 和 ss.a.2.jar !似乎 Maven 在第一个多模块之后停止(即 ss.a)。

有什么想法吗? 谢谢

我发现了问题:)

默认情况下,maven 程序集插件选择没有分类器的人工制品(或 none 作为分类器)。 事实上,模块 ss.b 生成的人工制品的分类器不是 none,这就是它被忽略的原因。