【问题标题】:Maven assembly useAllReactorProjects in child module not work子模块中的 Maven 程序集 useAllReactorProjects 不起作用
【发布时间】:2016-01-30 18:19:36
【问题描述】:

多模块项目的 Maven 组装插件不会收集所有子模块。

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

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>

程序集.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
  • ss.b.1.jar
  • ss.b.2.jar

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

有什么想法吗? 谢谢。

【问题讨论】:

    标签: maven maven-assembly-plugin multi-module


    【解决方案1】:

    我发现了问题:)

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

    【讨论】:

    • 如果您找到了解决方案,请接受您的回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    相关资源
    最近更新 更多