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 は war を作成し、アセンブリは jetty をダウンロードして 2 つを一緒に zip に追加します。

子 2 が jar と Tanuki サービス スクリプトを作成し、アセンブリがそれらをすべて圧縮します。

これら 2 つの zip とドキュメント フォルダーの内容を 1 つの zip に追加して、クライアントに提供したいと考えています。

そのために、アセンブリのアセンブリを行う 3 番目のモジュールを追加しました。

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 に入れても問題ありませんが、バイナリ セクションは機能しません。バイナリ セクションでインクルードを指定しないと、最終的な zip に jar と war が含まれてしまいます。これらは子zipにあるため、最終zipには入れたくありません。

子zipを最終zipに入れるにはどうすればよいですか?

4

0 に答える 0