将父文档包含在zip文件

时间:2016-05-03 05:15:23

标签: java maven maven-assembly-plugin

我有一个multimodule maven项目,我想在最后创建一个包含.ear和文档的ZIP文件。

文档是使用 docbkx 创建的,并且是父项的一部分。 .ear文件在模块中生成。

我的结构:

partent
|-src/docbkx
|-moduleEJB
|-moduleEAR

我现在在哪里?

  1. 我可以创建包含我耳朵的ZIP(使用mvn clean package
  2. 我可以创建文档的PDF输出(使用mvn clean site
  3. 我现在想要将生成的文档PDF包含在我的ZIP文件中。我怎样才能做到这一点?我试图包含我的父项目的目标目录,但没有发生任何事情 - 这似乎是合乎逻辑的,因为当我运行mvn clean package时,文档PDF并不是pre-site的一部分。的生命周期。

    这是我的assembly.xml

    <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
      <id>bin</id>
      <formats>
        <format>zip</format>
      </formats>
      <includeBaseDirectory>false</includeBaseDirectory>
      <fileSets>
        <fileSet>
          <directory>${project.build.directory}</directory>
          <includes>
            <include>*.ear</include>
          </includes>      
          <outputDirectory>/</outputDirectory>
        </fileSet>
        <fileSet>
          <directory>${parent.project.build.directory}/docbkx/pdf</directory>
          <includes>
            <include>*.pdf</include>
          </includes>      
          <outputDirectory>docs/</outputDirectory>
        </fileSet>        
      </fileSets>
    </assembly>
    

    这是我的parent.pom:

    的docbooks执行部分
                <executions>
                    <execution>
                        <phase>pre-site</phase>
                        <goals>
                            <goal>generate-pdf</goal>
                        </goals>
                        <configuration>
                        </configuration>
                    </execution>
                </executions>
    

    提前致谢

    编辑:我也尝试将docbkx的阶段改为编译,但在我的最终zip中仍然没有。

1 个答案:

答案 0 :(得分:1)

我自己得到了它。由于父项目是最后一个构建我创建了一个名为文档的新项目来创建PDF。然后我使用文件集

将其添加到zip中
<fileSet>
  <directory>${project.build.directory}/../../documentation/target/docbkx/pdf</directory>
  <includes>
    <include>*.pdf</include>
  </includes>      
  <outputDirectory>docs/</outputDirectory>
</fileSet>