Maven-maven-assembly-plugin的使用

记录 maven maven-assembly-plugin 插件的使用

使用方法

官方文档 Usage

Configuration

assembly 翻译为 程序集

如果要使用预定义的描述符之一,则可以配置要与 <descriptorRefs> / <descriptorRef> 参数一起使用的描述符。 如果要使用自定义程序集描述符,则可以使用 <descriptors> / <descriptor>参数配置描述符的路径。

Error reading assemblies: Descriptor with ID ‘package.xml’ not found -> [Help 1] 这种错误就是在自定义描述符时用成了 descriptorRefs

请注意,对程序集插件的一次调用实际上可以从多个描述符生成程序集,从而使您能够最大程度地自定义项目所生成的二进制文件套件。 创建程序集后,它将使用assemblyId作为工件的分类器,并将创建的程序集附加到项目,以便在安装和部署阶段将其上载到资源库中。

例如,假设我们的项目产生了一个JAR。 如果要创建一个包含项目依赖项的程序集二进制文件,则可以利用程序集插件的预制描述符之一。您可以在项目的 pom.xml 中进行如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<!-- NOTE: We don't need a groupId specification because the group is
org.apache.maven.plugins ...which is assumed by default.
-->
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
[...]
</project>

注意,Assembly Plugin允许您一次指定多个 descriptorRefs,以在一次调用中生成多种类型的程序集。

另外,我们在 src/assembly 目录中创建了一个名为 src.xml 的自定义程序集描述符(有关更多信息,请参见 参考资料部分)。我们可以告诉Assembly插件改用它:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<descriptors>
<descriptor>src/assembly/src.xml</descriptor>
</descriptors>
</configuration>
[...]
</project>

再次注意,我们可以在此处指定多个自定义程序集描述符。另外,可以在同一配置中指定 descriptorsdescriptorRefs 混合。

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
[...]
</project>

然后,要创建项目程序集,只需从默认生命周期简单执行正常的打包阶段即可:

1
mvn package

该构建完成后,您应该在目标目录中看到一个文件,其名称类似于以下内容:

1
target/sample-1.0-SNAPSHOT-jar-with-dependencies.jar

一些资源

  1. For more information on writing your own assembly descriptor, read the Assembly Descriptor
  2. For more information about maven-archiver, look here.
  3. For more information on advanced maven-assembly-plugin configuration, see the examples.
0%
隐藏