SpringBoot 项目瘦身 maven/gradle 详解
简介
对于使用 Maven 和 Gradle 构建的 Spring Boot 项目,在打包成 jar 或 war 文件时可能会比较大,占用过多的磁盘空间和运行内存。因此,我们需要对项目进行瘦身,减少不必要的依赖和文件。
本篇文章旨在介绍 Maven 和 Gradle 的瘦身方法,并提供两个示例以供参考。
Maven 项目瘦身
方法一:使用 Maven Dependency Plugin
Maven 编译时会将项目的所有依赖打包到项目 jar 包中,可以使用 Maven Dependency Plugin 从 jar 包中移除不必要的依赖。
具体步骤为:在 pom.xml
中加入以下代码,使用 mvn dependency:copy-dependencies
命令打包,并使用 java -jar
命令运行。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependency</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<includeScope>runtime</includeScope>
<excludeTransitive>true</excludeTransitive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
方法二:使用 Shade Plugin
Shade Plugin 会将项目依赖打包到一个独立的 jar 包,可以方便地在所有环境中使用。
具体步骤为:在 pom.xml
文件中加入以下代码,使用 mvn package
命令打包,并使用 java -jar
命令运行。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<minimizeJar>true</minimizeJar>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Gradle 项目瘦身
方法一:使用 Gradle Shadow Plugin
Gradle Shadow Plugin 类似于 Maven 的 Shade Plugin,会将项目依赖打包到一个独立的 jar 包。
具体步骤为:在 build.gradle
文件中加入以下代码,使用 gradle shadowJar
命令打包,并使用 java -jar
命令运行。
plugins {
id 'com.github.johnrengelman.shadow' version '7.0.0'
}
shadowJar {
minimize()
removeUnusedDependencies()
}
方法二:使用 Gradle Fat Jar Plugin
Gradle Fat Jar Plugin 可以将项目依赖打包到一个独立的 jar 包。
具体步骤为:在 build.gradle
文件中加入以下代码,使用 gradle fatJar
命令打包,并使用 java -jar
命令运行。
plugins {
id 'edu.sc.seis.gradle' version '1.7.1'
}
fatJar {
exclude(['META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'])
}
示例
- 使用 Maven Dependency Plugin 瘦身 Spring Boot 项目。
首先,在 pom.xml
中加入 Maven Dependency Plugin 的配置。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependency</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<includeScope>runtime</includeScope>
<excludeTransitive>true</excludeTransitive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后,使用 mvn dependency:copy-dependencies
命令打包。
最后,在 target
目录下可以看到生成的 jar 包和依赖文件夹。
- 使用 Gradle Shadow Plugin 瘦身 Spring Boot 项目。
首先,在 build.gradle
中加入 Shadow Plugin 的配置。
plugins {
id 'com.github.johnrengelman.shadow' version '7.0.0'
}
shadowJar {
minimize()
removeUnusedDependencies()
}
然后,使用 gradle shadowJar
命令打包。
最后,在 build/libs
目录下可以看到生成的独立 jar 包。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot 项目瘦身maven/gradle详解 - Python技术站