maven-assembly-plugin 打瘦包
时间: 2023-07-18 19:53:20 浏览: 156
Maven Assembly Plugin 是 Maven 的一个插件,可以用来生成自定义的格式的包,包括瘦包。
所谓瘦包,是指只包含应用程序运行所必需的类和资源文件,不包含不必要的依赖。这样可以减小应用程序的大小,提高应用程序的启动速度。
以下是使用 Maven Assembly Plugin 生成瘦包的步骤:
1. 在 pom.xml 文件中添加 Maven Assembly Plugin 的依赖:
```xml
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
</dependency>
```
2. 在 pom.xml 文件中配置 Maven Assembly Plugin:
```xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>package-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
```
在上述配置中,使用了 `jar-with-dependencies` 描述符,该描述符会将所有依赖包都打入生成的 JAR 文件中,因此生成的 JAR 文件会比较大,不符合瘦包的要求。因此,我们需要在 Maven Assembly Plugin 的配置中添加一些配置项,来剔除不必要的依赖。例如,可以使用以下配置来排除 `slf4j` 依赖:
```xml
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
<dependencySets>
<dependencySet>
<outputDirectory>/lib</outputDirectory>
<useProjectArtifact>false</useProjectArtifact>
<excludes>
<exclude>org.slf4j:*</exclude>
</excludes>
</dependencySet>
</dependencySets>
</configuration>
```
在上述配置中,使用了 `dependencySet` 元素来排除 `slf4j` 依赖,将其放置在 `/lib` 目录下,这样就可以生成一个瘦包了。
阅读全文