食谱:如何生成程序集?
概括
这个秘籍描述了如何生成像 zip、tar.gz 或 tar.bz2 这样的程序集。
先决条件插件
以下是使用的插件列表:
| 插入 | 版本 | 
|---|---|
 assembly | 
2.4.1 | 
样本生成的输出
attach-source-javadoc
|-- pom.xml
|-- src\
`-- target
    `-- apache-maven-cookbook-1.0-SNAPSHOT-bin
    `-- apache-maven-cookbook-1.0-SNAPSHOT-bin.tar.bz2
    `-- apache-maven-cookbook-1.0-SNAPSHOT-bin.tar.gz
    `-- apache-maven-cookbook-1.0-SNAPSHOT-bin.zip
食谱
配置程序集描述符
要生成程序集,我们需要配置bin.xml在src/assembly目录中调用的程序集描述符。首先,我们指定想要的格式,即
<formats> <format>tar.gz</format> <format>tar.bz2</format> <format>zip</format> </formats>
和想要的文件集,即
<fileSets>
  <fileSet>
    <includes>
      <include>README*</include>
    </includes>
  </fileSet>
  <fileSet>
    <directory>src/bin</directory>
    <outputDirectory>bin</outputDirectory>
    <includes>
      <include>*.bat</include>
    </includes>
    <lineEnding>dos</lineEnding>
  </fileSet>
  <fileSet>
    <directory>src/bin</directory>
    <outputDirectory>bin</outputDirectory>
    <includes>
      <include>hello</include>
    </includes>
    <lineEnding>unix</lineEnding>
    <fileMode>0755</fileMode>
  </fileSet>
  <fileSet>
    <directory>target</directory>
    <outputDirectory>lib</outputDirectory>
    <includes>
      <include>generate-assembly-*.jar</include>
    </includes>
  </fileSet>
</fileSets>
配置 Maven 程序集插件
我们assembly:single在阶段执行来自 Assembly 插件的目标package。
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <descriptor>src/assembly/bin.xml</descriptor>
    <finalName>apache-maven-cookbook-${pom.version}</finalName>
  </configuration>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
    </execution>
  </executions>
</plugin>
运行 Maven
只需调用 Maven 来生成包:
mvn package



