4

我有一个用于企业项目的多模块 Maven 构建,结构如下:

-- Parent
  -- Documentation
  -- Child1
    -- src/main/java
    -- src/main/assembly/assembly.xml
    -- pom.xml
  -- Child2 
    -- src/main/java
    -- src/main/assembly/assembly.xml
    -- pom.xml
-- pom.xml (parent project)

Child1 创建一个战争,然后程序集下载 jetty 并将 2 一起添加到一个 zip 中。

Child 2 创建一个 jar 和 Tanuki 服务脚本,然后程序集将它们全部压缩。

我想将这 2 个 zip 和 Documentation 文件夹的内容添加到一个 zip 中以提供给我的客户。

为此,我添加了第三个模块来进行程序集的组装。

assembly.xml 如下所示:

    <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
      <id>bin</id>
      <formats>
        <format>zip</format>
      </formats>
      <includeBaseDirectory>false</includeBaseDirectory>

      <moduleSets>
        <moduleSet>
          <includeSubModules>false</includeSubModules>
          <!-- Enable access to all projects in the current multi-module build! -->
          <useAllReactorProjects>true</useAllReactorProjects>

          <!-- Now, select which projects to include in this module-set. -->
          <includes>
            <include>org.test:Parent</include>
          </includes>
          <sources>
            <outputDirectoryMapping>.</outputDirectoryMapping>
            <fileSets>
              <fileSet>
                <directory>Documentation</directory>
                <includes>
                  <include>README*</include>
                </includes>
              </fileSet>
            </fileSets>
          </sources>
        </moduleSet>
        <moduleSet>
          <includeSubModules>false</includeSubModules>
          <useAllReactorProjects>true</useAllReactorProjects>
          <includes>
            <include>org.test:child1</include>
          </includes>
          <binaries>
            <unpack>false</unpack>
            <includes>
              <include>*.zip</include>
            </includes>
          </binaries>
        </moduleSet>
      </moduleSets>
    </assembly>

第一部分将文档放入 zip OK 但二进制部分不起作用。如果我没有在二进制部分中指定包含,我最终会在我的最终 zip 中得到 jar 和 war。我不希望这些在我的最终拉链中,因为它们在子拉链中。

我怎样才能让孩子拉链进入最终拉链?

4

0 回答 0