Maven-maven-assembly-plugin的使用
记录 maven maven-assembly-plugin
插件的使用
使用方法
Configuration
assembly 翻译为 程序集
如果要使用预定义的描述符之一,则可以配置要与 <descriptorRefs>
/ <descriptorRef>
参数一起使用的描述符。 如果要使用自定义程序集描述符,则可以使用 <descriptors>
/ <descriptor>
参数配置描述符的路径。
Error reading assemblies: Descriptor with ID ‘package.xml’ not found -> [Help 1] 这种错误就是在自定义描述符时用成了 descriptorRefs
请注意,对程序集插件的一次调用实际上可以从多个描述符生成程序集,从而使您能够最大程度地自定义项目所生成的二进制文件套件。 创建程序集后,它将使用assemblyId作为工件的分类器,并将创建的程序集附加到项目,以便在安装和部署阶段将其上载到资源库中。
例如,假设我们的项目产生了一个JAR。 如果要创建一个包含项目依赖项的程序集二进制文件,则可以利用程序集插件的预制描述符之一。您可以在项目的 pom.xml
中进行如下配置:
1 | <project> |
注意,Assembly Plugin允许您一次指定多个 descriptorRefs
,以在一次调用中生成多种类型的程序集。
另外,我们在 src/assembly
目录中创建了一个名为 src.xml
的自定义程序集描述符(有关更多信息,请参见 参考资料部分)。我们可以告诉Assembly插件改用它:
1 | <project> |
再次注意,我们可以在此处指定多个自定义程序集描述符。另外,可以在同一配置中指定 descriptors
和 descriptorRefs
混合。
Note: Many other configuration options are available for the various goals in the Assembly Plugin. For more information, see the examples section or the plugin parameter documentation.
Execution: Building an Assembly
在大多数情况下,您将需要确保在常规构建过程中创建了程序集。 这样可以确保程序集存档可用于安装和部署,并且可以在项目发布期间创建它们。这由 assembly:single
处理。
要将 single
目标绑定到项目的构建生命周期,可以添加以下配置(假设您使用的是 jar-with-dependencies
预制描述符):
1 | <project> |
然后,要创建项目程序集,只需从默认生命周期简单执行正常的打包阶段即可:
1 | mvn package |
该构建完成后,您应该在目标目录中看到一个文件,其名称类似于以下内容:
1 | target/sample-1.0-SNAPSHOT-jar-with-dependencies.jar |
一些资源
- For more information on writing your own assembly descriptor, read the Assembly Descriptor
- For more information about
maven-archiver
, look here. - For more information on advanced
maven-assembly-plugin
configuration, see the examples.