组装:单个

全名

org.apache.maven.plugins:maven-assembly-plugin:3.3.0:single

说明

从组装描述符组装应用程序包或分发。此目标适用于绑定到生命周期或直接从命令行调用(假设所有必需的文件在构建开始之前可用,或者由命令行上在此之前指定的另一个目标生成)。
请注意,参数descriptorsdescriptorRefsdescriptorSourceDirectory是不相交的,即在描述符位置计算期间它们不会组合。

属性

  • 需要执行一个 Maven 项目。
  • 需要对范围内的工件进行依赖解析:test
  • 在多项目构建中默认不继承。

必需参数

姓名 类型 自从 描述
<输出目录> 文件 - 组装分发文件的输出目录。
默认值为${project.build.directory}
<工作目录> 文件 - 如果需要,将 JAR 解压到的目录
默认值为${project.build.directory}/assembly/work

可选参数

姓名 类型 自从 描述
<附加属性> 特性 3.3.0 一组用于过滤的附加属性
<appendAssemblyId> 布尔值 - 设置为 false 以从程序集最终名称中排除程序集 ID,并在没有分类器的情况下创建结果程序集工件。因此,与当前 Maven 项目的打包具有相同格式的组装工件将替换此主项目工件的文件。
默认值为true
用户属性是assembly.appendAssemblyId
<存档> Maven存档配置 - 这是归档构建器的一组说明,尤其是用于构建 .jar 文件。除了其他选项外,它还允许您为 jar 指定清单文件。请参阅Maven 存档器参考
<归档基础目录> 文件 - 这是创建存档文件的基本目录。此基本目录预先添加到程序集描述符中的任何 <directory>规范中。这是一个可选参数。
<归档配置> 丛配置 2.2-β-3 允许特定于特定类型的存档格式的附加配置选项。这旨在捕获 XML 配置,该配置将用于反射性地设置存档器实例上的选项。
要查看归档器配置的可能选项,请访问 Plexus 归档器文档
例如,要指示具有“ear”格式的程序集使用特定的部署描述符,您应该在插件配置中为 archiverConfig 值指定以下内容:
<appxml>${project.basedir}/somepath/app.xml</appxml>

<附加> 布尔值 2.2-β-1 控制程序集插件是否尝试将生成的程序集附加到项目。
默认值为true
用户属性是assembly.attach
<分隔符> 列表 2.4

用于在资源中过滤的表达式的分隔符集。这些定界符以“beginToken*endToken”的形式指定。如果没有给出“*”,则假定开始和结束的分隔符相同。

因此,默认过滤分隔符可以指定为:

<delimiters>
  <delimiter>${*}</delimiter>
  <delimiter>@</delimiter>
</delimiters>

由于'@'分隔符在两端是相同的,我们不需要指定'@*@'(尽管我们可以)。


<descriptorRefs> 细绳[] - 插件类路径中可用的程序集描述符的引用列表。默认类路径包括这些内置描述符:binjar-with-dependenciessrcproject。您可以通过向插件添加依赖项来添加其他人。
<描述符源目录> 文件 - 用于扫描描述符文件的目录。注意:这可能不适用于装配组件。
<描述符> 细绳[] - 要从中生成的描述符文件列表。
<干运行> 布尔值 - 如果设置了此标志,则调用 Archiver.createArchive() 之前的所有内容都将被执行。
默认值为false
用户属性是assembly.dryRun
<编码> 细绳 - 过滤资源时要应用的字符编码方案。
默认值为${project.build.sourceEncoding}
用户属性是编码
<转义字符串> 细绳 2.4 不会插入此字符串前面的表达式。如果您使用“\”作为转义字符串,则 ${foo} 将被替换为 ${foo}。
用户属性是assembly.escapeString
<过滤器> 列表 - 要使用的额外过滤器属性文件列表,以及在 POM 构建/过滤器部分中指定的系统属性、项目属性和过滤器属性文件,这些文件应该用于当前 mojo 执行期间的过滤。
通常,这些将从插件的执行部分配置,为特定执行提供一组不同的过滤器。
<格式> 列表 - 指定程序集的格式。可以提供多种格式,Assembly Plugin 将为每种所需格式生成一个存档。部署项目时,还将部署所有指定的文件格式。通过在 <format> 子元素中提供以下值之一来指定格式:
  • dir - 创建一个目录
  • zip - 创建 ZIP 文件格式
  • tar - 创建一个 TAR 格式
  • tar.gztgz - 创建 gzip 的 TAR 格式
  • tar.bz2tbz2 - 创建 bzip'd TAR 格式
  • tar.snappy - 创建一个 snappy 的 TAR 格式
  • tar.xztxz - 创建 xz'd TAR 格式

<ignoreDirFormatExtensions> 布尔值 - 如果设置了此标志,则在使用 assembly/format == 'dir' 和其他以 'dir' 开头的格式时,输出目录名称中的“.dir”后缀将被抑制。
注意:从 2.2-beta-3 开始,默认值为 true,而不是以前的 false。
默认值为true
<ignoreMissingDescriptor> 布尔值 - 设置为 true 以便在缺少描述符时不会失败。
默认值为false
用户属性是assembly.ignoreMissingDescriptor
<忽略权限> 布尔值 2.2

设置为true以避免所有 chmod 调用。

注意:这将导致程序集插件 忽略程序集描述符中的所有文件模式/目录模式设置,以及解压依赖项中的所有文件权限!


默认值为false
用户属性是assembly.ignorePermissions
<includeProjectBuildFilters> 布尔值 2.4.2 如果为 True(默认),则除了为程序集定义的任何其他过滤器之外,还使用 ​​${project.build.filters}。
默认值为true
用户属性是assembly.includeProjectBuildFilters
<合并清单模式> 细绳 3 在 JarArchiver 中设置合并清单模式
<输出时间戳> 细绳 3.2.0 可重现输出存档条目的时间戳,格式为 ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX或表示自纪元以来秒数的 int(如SOURCE_DATE_EPOCH)。
默认值为${project.build.outputTimestamp}
<覆盖Gid> 整数 - 覆盖可以存储它的存档类型中的组 ID。
<覆盖组名> 细绳 - 覆盖可以存储它的存档类型中的组名。
<overrideUid> 整数 - 覆盖可以存储它的存档类型中的用户 ID。
<覆盖用户名> 细绳 - 覆盖可以存储它的存档类型中的用户名。
<重新压缩压缩文件> 布尔值 2.4 指示是否应再次压缩添加到程序集的 zip 档案(jar、zip 等)。再次压缩可能会导致更小的存档大小,但会显着延长执行时间。
默认值为true
<runOnlyAtExecutionRoot> 布尔值 2.2-beta-4 这将导致程序集仅在给定模块树的顶部运行。也就是说,在启动 mvn 执行的同一文件夹中包含的项目中运行。
默认值为false
用户属性是assembly.runOnlyAtExecutionRoot
<跳过组装> 布尔值 - 允许将程序集插件的一个或多个执行配置为跳过特定构建的标志。这使得程序集插件更易于从配置文件中控制。
默认值为false
用户属性是assembly.skipAssembly
<tarLongFileMode> 细绳 - 在长度超过 100 个字符的文件路径上设置 TarArchiver 行为。有效值为:“warn”(默认)、“fail”、“truncate”、“gnu”、“posix”、“posix_warn”或“omit”。
默认值为警告
用户属性是assembly.tarLongFileMode
<仅更新> 布尔值 2.2 这将导致程序集仅更新现有存档(如果存在)。

注意:可以在命令行上使用的属性在 2.4 之前的版本中被拼写为“assembly.updatOnly”。


默认值为false
用户属性是assembly.updateOnly
<使用JvmChmod> 布尔值 2.2 已弃用。不再使用,将在未来版本中删除
默认值为false
用户属性是assembly.useJvmChmod

参数详情

<附加属性>

一组用于过滤的附加属性
  • 类型java.util.Properties
  • 3.3.0
  • 要求

<appendAssemblyId>

设置为 false 以从程序集最终名称中排除程序集 ID,并在没有分类器的情况下创建结果程序集工件。因此,与当前 Maven 项目的打包具有相同格式的组装工件将替换此主项目工件的文件。
  • 类型布尔值
  • 要求
  • 用户属性assembly.appendAssemblyId
  • 默认值

<存档>

这是归档构建器的一组说明,尤其是用于构建 .jar 文件。除了其他选项外,它还允许您为 jar 指定清单文件。请参阅Maven 存档器参考
  • 类型org.apache.maven.archiver.MavenArchiveConfiguration
  • 要求

<归档基础目录>

这是创建存档文件的基本目录。此基本目录预先添加到程序集描述符中的任何 <directory>规范中。这是一个可选参数。
  • 类型java.io.File
  • 要求

<归档配置>

允许特定于特定类型的存档格式的附加配置选项。这旨在捕获 XML 配置,该配置将用于反射性地设置存档器实例上的选项。
要查看归档器配置的可能选项,请访问 Plexus 归档器文档
例如,要指示具有“ear”格式的程序集使用特定的部署描述符,您应该在插件配置中为 archiverConfig 值指定以下内容:
<appxml>${project.basedir}/somepath/app.xml</appxml>
  • 类型org.codehaus.plexus.configuration.PlexusConfiguration
  • : 2.2-beta-3
  • 要求

<附加>

控制程序集插件是否尝试将生成的程序集附加到项目。
  • 类型布尔值
  • 2.2-beta-1
  • 要求
  • 用户属性assembly.attach
  • 默认值

<分隔符>

用于在资源中过滤的表达式的分隔符集。这些定界符以“beginToken*endToken”的形式指定。如果没有给出“*”,则假定开始和结束的分隔符相同。

因此,默认过滤分隔符可以指定为:

<delimiters>
  <delimiter>${*}</delimiter>
  <delimiter>@</delimiter>
</delimiters>

由于'@'分隔符在两端是相同的,我们不需要指定'@*@'(尽管我们可以)。

  • 类型java.util.List
  • : 2.4
  • 要求

<descriptorRefs>

插件类路径中可用的程序集描述符的引用列表。默认类路径包括这些内置描述符:binjar-with-dependenciessrcproject。您可以通过向插件添加依赖项来添加其他人。
  • 类型java.lang.String[]
  • 要求

<描述符源目录>

用于扫描描述符文件的目录。注意:这可能不适用于装配组件。
  • 类型java.io.File
  • 要求

<描述符>

要从中生成的描述符文件列表。
  • 类型java.lang.String[]
  • 要求

<干运行>

如果设置了此标志,则调用 Archiver.createArchive() 之前的所有内容都将被执行。
  • 类型布尔值
  • 要求
  • 用户属性assembly.dryRun
  • 默认值

<编码>

过滤资源时要应用的字符编码方案。
  • 类型java.lang.String
  • 要求
  • 用户属性编码
  • 默认值${project.build.sourceEncoding}

<转义字符串>

不会插入此字符串前面的表达式。如果您使用“\”作为转义字符串,则 ${foo} 将被替换为 ${foo}。
  • 类型java.lang.String
  • : 2.4
  • 要求
  • 用户属性assembly.escapeString

<过滤器>

要使用的额外过滤器属性文件列表,以及在 POM 构建/过滤器部分中指定的系统属性、项目属性和过滤器属性文件,这些文件应该用于当前 mojo 执行期间的过滤。
通常,这些将从插件的执行部分配置,为特定执行提供一组不同的过滤器。
  • 类型java.util.List
  • 要求

<格式>

指定程序集的格式。可以提供多种格式,Assembly Plugin 将为每种所需格式生成一个存档。部署项目时,还将部署所有指定的文件格式。通过在 <format> 子元素中提供以下值之一来指定格式:
  • dir - 创建一个目录
  • zip - 创建 ZIP 文件格式
  • tar - 创建一个 TAR 格式
  • tar.gztgz - 创建 gzip 的 TAR 格式
  • tar.bz2tbz2 - 创建 bzip'd TAR 格式
  • tar.snappy - 创建一个 snappy 的 TAR 格式
  • tar.xztxz - 创建 xz'd TAR 格式
  • 类型java.util.List
  • 要求

<ignoreDirFormatExtensions>

如果设置了此标志,则在使用 assembly/format == 'dir' 和其他以 'dir' 开头的格式时,输出目录名称中的“.dir”后缀将被抑制。
注意:从 2.2-beta-3 开始,默认值为 true,而不是以前的 false。
  • 类型布尔值
  • 要求
  • 默认值

<ignoreMissingDescriptor>

设置为 true 以便在缺少描述符时不会失败。
  • 类型布尔值
  • 要求
  • 用户属性assembly.ignoreMissingDescriptor
  • 默认值

<忽略权限>

设置为true以避免所有 chmod 调用。

注意:这将导致程序集插件 忽略程序集描述符中的所有文件模式/目录模式设置,以及解压依赖项中的所有文件权限!

  • 类型布尔值
  • : 2.2
  • 要求
  • 用户属性assembly.ignorePermissions
  • 默认值

<includeProjectBuildFilters>

如果为 True(默认),则除了为程序集定义的任何其他过滤器之外,还使用 ​​${project.build.filters}。
  • 类型布尔值
  • 2.4.2
  • 要求
  • 用户属性assembly.includeProjectBuildFilters
  • 默认值

<合并清单模式>

在 JarArchiver 中设置合并清单模式
  • 类型java.lang.String
  • : 3
  • 要求

<输出目录>

组装分发文件的输出目录。
  • 类型java.io.File
  • 要求
  • 默认值${project.build.directory}

<输出时间戳>

可重现输出存档条目的时间戳,格式为 ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX或表示自纪元以来秒数的 int(如SOURCE_DATE_EPOCH)。
  • 类型java.lang.String
  • 3.2.0
  • 要求
  • 默认值${project.build.outputTimestamp}

<覆盖Gid>

覆盖可以存储它的存档类型中的组 ID。
  • 类型java.lang.Integer
  • 要求

<覆盖组名>

覆盖可以存储它的存档类型中的组名。
  • 类型java.lang.String
  • 要求

<overrideUid>

覆盖可以存储它的存档类型中的用户 ID。
  • 类型java.lang.Integer
  • 要求

<覆盖用户名>

覆盖可以存储它的存档类型中的用户名。
  • 类型java.lang.String
  • 要求

<重新压缩压缩文件>

指示是否应再次压缩添加到程序集的 zip 档案(jar、zip 等)。再次压缩可能会导致更小的存档大小,但会显着延长执行时间。
  • 类型布尔值
  • : 2.4
  • 要求
  • 默认值

<runOnlyAtExecutionRoot>

这将导致程序集仅在给定模块树的顶部运行。也就是说,在启动 mvn 执行的同一文件夹中包含的项目中运行。
  • 类型布尔值
  • 2.2-beta-4
  • 要求
  • 用户属性assembly.runOnlyAtExecutionRoot
  • 默认值

<跳过组装>

允许将程序集插件的一个或多个执行配置为跳过特定构建的标志。这使得程序集插件更易于从配置文件中控制。
  • 类型布尔值
  • 要求
  • 用户属性assembly.skipAssembly
  • 默认值

<tarLongFileMode>

在长度超过 100 个字符的文件路径上设置 TarArchiver 行为。有效值为:“warn”(默认)、“fail”、“truncate”、“gnu”、“posix”、“posix_warn”或“omit”。
  • 类型java.lang.String
  • 要求
  • 用户属性assembly.tarLongFileMode
  • 默认值警告

<仅更新>

这将导致程序集仅更新现有存档(如果存在)。

注意:可以在命令行上使用的属性在 2.4 之前的版本中被拼写为“assembly.updatOnly”。

  • 类型布尔值
  • : 2.2
  • 要求
  • 用户属性assembly.updateOnly
  • 默认值

<使用JvmChmod>

已弃用。不再使用,将在未来版本中删除
(没有说明)
  • 类型布尔值
  • : 2.2
  • 要求
  • 用户属性assembly.useJvmChmod
  • 默认值

<工作目录>

如果需要,将 JAR 解压到的目录
  • 类型java.io.File
  • 要求
  • 默认值${project.build.directory}/assembly/work