预定义的描述符文件

有四种预定义的描述符格式可供重用,封装在 Assembly Plugin 中。他们的descriptorIds是:

使用bin作为您的程序集插件配置的descriptorRef ,以创建项目的二进制分发存档。这个内置描述符生成一个带有分类器bin的程序集,分为三种存档格式:tar.gz、tar.bz2 和 zip。

组装的存档包含通过运行mvn package生成的二进制 JAR以及项目根目录中可用的任何 README、LICENSE 和 NOTICE 文件。

下面是bin描述符格式:

<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
  <id>bin</id>
  <formats>
    <format>tar.gz</format>
    <format>tar.bz2</format>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>${project.basedir}</directory>
      <outputDirectory></outputDirectory>
      <includes>
        <include>README*</include>
        <include>LICENSE*</include>
        <include>NOTICE*</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>${project.build.directory}</directory>
      <outputDirectory></outputDirectory>
      <includes>
        <include>*.jar</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>${project.build.directory}/site</directory>
      <outputDirectory>docs</outputDirectory>
    </fileSet>
  </fileSets>
</assembly>

带有依赖项的 jar

使用jar-with-dependencies作为您的程序集插件配置的descriptorRef ,以创建一个包含项目二进制输出的JAR,以及解压后的依赖项。此内置描述符使用 JAR 归档格式生成带有分类器jar-with-dependencies的程序集。

请注意,jar-with-dependencies仅提供对 uber-jars 的基本支持。如需更多控制,请使用Maven Shade Plugin

下面是jar-with-dependencies描述符格式:

<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
  <!-- TODO: a jarjar format would be better -->
  <id>jar-with-dependencies</id>
  <formats>
    <format>jar</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <dependencySets>
    <dependencySet>
      <outputDirectory>/</outputDirectory>
      <useProjectArtifact>true</useProjectArtifact>
      <unpack>true</unpack>
      <scope>runtime</scope>
    </dependencySet>
  </dependencySets>
</assembly>

源代码

在您的程序集插件配置中使用src作为descriptorRef来为您的项目创建源档案。存档将包含您项目的/src目录结构的内容,供您的用户参考。src描述符 ID 生成带有分类器src的程序集存档,分为三种格式:tar.gz、tar.bz2 和 zip。

以下是src描述符格式:

<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
  <id>src</id>
  <formats>
    <format>tar.gz</format>
    <format>tar.bz2</format>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>${project.basedir}</directory>
      <includes>
        <include>README*</include>
        <include>LICENSE*</include>
        <include>NOTICE*</include>
        <include>pom.xml</include>
      </includes>
      <useDefaultExcludes>true</useDefaultExcludes>
    </fileSet>
    <fileSet>
      <directory>${project.basedir}/src</directory>
      <useDefaultExcludes>true</useDefaultExcludes>
    </fileSet>
  </fileSets>
</assembly>

项目

在您的程序集插件配置中使用项目 <descriptorRef>将生成一个包含整个项目的程序集,减去/target目录中的任何构建输出。生成的程序集应该允许您的用户使用 Maven、Ant 或您在项目的正常 SCM 工作目录中配置的任何构建系统来构建您的项目。它使用分类器项目以三种归档格式生成程序集:tar.gz、tar.bz2 和 zip。

以下是项目descriptorRef的程序集描述符:

<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
  <id>project</id>
  <formats>
    <format>tar.gz</format>
    <format>tar.bz2</format>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>${project.basedir}</directory>
      <outputDirectory></outputDirectory>
      <useDefaultExcludes>true</useDefaultExcludes>
      <excludes>
        <exclude>**/*.log</exclude>
        <exclude>**/${project.build.directory}/**</exclude>
      </excludes>
    </fileSet>
  </fileSets>
</assembly>