Apache Maven 程序集插件

介绍

Maven 的组装插件使开发人员能够将项目输出组合到一个可分发的存档中,该存档还包含依赖项、模块、站点文档和其他文件。

您的项目可以使用预制程序集描述符之一轻松构建分发“程序集” 。这些描述符处理许多常见操作,例如将项目的工件与生成的文档一起打包到单个 zip 存档中。或者,您的项目可以提供自己的描述符,并对依赖项、模块、文件集和单个文件在程序集中的打包方式进行更高级别的控制。

目前它可以创建以下格式的发行版:

  • 压缩
  • 柏油
  • tar.gz(或 tgz)
  • tar.bz2(或 tbz2)
  • tar.snappy
  • tar.xz(或 txz)
  • 目录
  • 战争
  • 以及已为 ArchiveManager 配置的任何其他格式

如果您的项目想要将您的工件打包到 uber-jar 中,则程序集插件仅提供基本支持。如需更多控制,请使用Maven Shade Plugin

要在 Maven 中使用 Assembly 插件,您只需要:

  • 选择或编写要使用的程序集描述符,
  • 在项目的pom.xml中配置 Assembly Plugin ,以及
  • 在您的项目上运行“mvn assembly:single”。

要编写您自己的自定义程序集,您需要参考程序集描述符格式参考。

什么是大会?

“程序集”是一组文件、目录和依赖项,它们组合成归档格式并分发。例如,假设一个 Maven 项目定义了一个 JAR 工件,它同时包含一个控制台应用程序和一个 Swing 应用程序。这样的项目可以定义两个“程序集”,将应用程序与一组不同的支持脚本和依赖集捆绑在一起。一个程序集是控制台应用程序的程序集,另一个程序集可能是捆绑了一组稍微不同的依赖项的 Swing 应用程序。

程序集插件提供了一种描述符格式,允许您从项目中定义任意文件和目录的程序集。例如,如果您的 Maven 项目包含目录“src/main/bin”,您可以指示Assembly Plugin 将该目录的内容复制到程序集的“bin”目录,并更改目录中文件的权限“bin”目录到 UNIX 模式 755。配置此行为的参数通过程序集描述符提供给程序集插件。

目标

组装插件的主要目标是单一目标。它用于创建所有程序集。

有关 Assembly Plugin 中可用目标的更多信息,请参阅插件文档页面

用法

有关如何使用 Assembly 插件的一般说明可以在使用页面上找到。下面给出的示例中描述了一些更具体的用例。

如果您对插件的使用仍有疑问,请查看常见问题解答并随时联系用户邮件列表。邮件列表中的帖子已存档,并且可能已经包含您问题的答案,作为旧线程的一部分。因此,也值得浏览/搜索邮件存档

如果您觉得插件缺少功能或存在缺陷,您可以在我们的问题跟踪器中填写功能请求或错误报告。创建新问题时,请提供您所关注问题的全面描述。特别是对于修复错误,开发人员可以重现您的问题至关重要。出于这个原因,非常感谢附在问题上的整个调试日志、POM 或最好的小演示项目。当然,补丁也是受欢迎的。贡献者可以从我们的源代码库中查看该项目,并将在帮助使用 Maven 的指南中找到补充信息。

例子

为了让您更好地了解 Assembly Plugin 的一些用法,您可以查看可以在此处找到的示例。