Maven 的组装插件使开发人员能够将项目输出组合到一个可分发的存档中,该存档还包含依赖项、模块、站点文档和其他文件。
您的项目可以使用预制程序集描述符之一轻松构建分发“程序集” 。这些描述符处理许多常见操作,例如将项目的工件与生成的文档一起打包到单个 zip 存档中。或者,您的项目可以提供自己的描述符,并对依赖项、模块、文件集和单个文件在程序集中的打包方式进行更高级别的控制。
目前它可以创建以下格式的发行版:
如果您的项目想要将您的工件打包到 uber-jar 中,则程序集插件仅提供基本支持。如需更多控制,请使用Maven Shade Plugin。
要在 Maven 中使用 Assembly 插件,您只需要:
要编写您自己的自定义程序集,您需要参考程序集描述符格式参考。
“程序集”是一组文件、目录和依赖项,它们组合成归档格式并分发。例如,假设一个 Maven 项目定义了一个 JAR 工件,它同时包含一个控制台应用程序和一个 Swing 应用程序。这样的项目可以定义两个“程序集”,将应用程序与一组不同的支持脚本和依赖集捆绑在一起。一个程序集是控制台应用程序的程序集,另一个程序集可能是捆绑了一组稍微不同的依赖项的 Swing 应用程序。
程序集插件提供了一种描述符格式,允许您从项目中定义任意文件和目录的程序集。例如,如果您的 Maven 项目包含目录“src/main/bin”,您可以指示Assembly Plugin 将该目录的内容复制到程序集的“bin”目录,并更改目录中文件的权限“bin”目录到 UNIX 模式 755。配置此行为的参数通过程序集描述符提供给程序集插件。
有关如何使用 Assembly 插件的一般说明可以在使用页面上找到。下面给出的示例中描述了一些更具体的用例。
如果您对插件的使用仍有疑问,请查看常见问题解答并随时联系用户邮件列表。邮件列表中的帖子已存档,并且可能已经包含您问题的答案,作为旧线程的一部分。因此,也值得浏览/搜索邮件存档。
如果您觉得插件缺少功能或存在缺陷,您可以在我们的问题跟踪器中填写功能请求或错误报告。创建新问题时,请提供您所关注问题的全面描述。特别是对于修复错误,开发人员可以重现您的问题至关重要。出于这个原因,非常感谢附在问题上的整个调试日志、POM 或最好的小演示项目。当然,补丁也是受欢迎的。贡献者可以从我们的源代码库中查看该项目,并将在帮助使用 Maven 的指南中找到补充信息。
为了让您更好地了解 Assembly Plugin 的一些用法,您可以查看可以在此处找到的示例。