Zip子组件在多模块Maven构建中使用maven-assembly-plugin

时间:2013-01-08 06:20:08

标签: maven maven-assembly-plugin

我有一个用于企业项目的多模块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加在一起。

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

我想将这两个拉链和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中,但二进制文件部分不起作用。 如果我没有在二进制文件部分中指定包含,那么我最终将使用jar和最后一个zip中的war。我不希望这些在我的最终拉链中,因为它们在拉链中。

如何让孩子拉链到最后的拉链?

0 个答案:

没有答案