SpringBoot 项目瘦身maven/gradle详解

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'])
}

示例

  1. 使用 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 包和依赖文件夹。

  1. 使用 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技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • SpringMVC下获取验证码实例详解

    下面我将为您详细讲解“SpringMVC下获取验证码实例详解”的完整攻略。该攻略主要分为三个部分,分别是:前端页面、后端控制器和验证码生成工具。 前端页面 首先,我们需要在前端页面中添加验证码输入框和验证码图片。具体代码如下: <!DOCTYPE html> <html> <head> <meta charset=&…

    Java 2023年6月15日
    00
  • Java switch 语句如何使用 String 参数

    Java中的switch语句通常用于针对不同的情况执行不同的操作,常用于替代多个if-else语句的情况。在早期版本中,switch语句只支持整数和枚举类型的参数,但从Java 7版本开始,可以使用字符串参数。下面详细描述如何在Java switch语句中使用字符串参数: 1. switch语句如何使用String类型的参数 为了使用字符串参数,可以在Jav…

    Java 2023年5月27日
    00
  • springboot配置templates直接访问的实现

    下面是springboot配置templates直接访问的实现攻略: 1、添加Maven依赖 在pom.xml文件中添加以下Maven依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-star…

    Java 2023年5月19日
    00
  • 使用cmd根据WSDL网址生成java客户端代码的实现

    使用cmd根据WSDL网址生成java客户端代码的实现,可以分为以下几个步骤: 打开cmd窗口 进入java/bin目录 敲入以下命令,其中”your_web_service_url”为你需要生成代码的WSDL服务的地址,”your_package_name”为你生成的Java代码所在的包名。 wsimport -keep -verbose your_web…

    Java 2023年5月19日
    00
  • 使用java实现猜拳小游戏

    使用Java实现猜拳小游戏 概述 在本篇攻略中,我们将使用Java编写一个猜拳小游戏,让玩家与计算机进行猜拳对抗。猜拳规则如下: 剪刀(scissors)败给石头(rock),胜过布(paper) 石头(rock)胜过剪刀(scissors),败给布(paper) 布(paper)胜过石头(rock),败给剪刀(scissors) 游戏结束后,将统计双方获胜…

    Java 2023年5月19日
    00
  • 使用idea远程调试jar包的配置过程

    下面详细讲解“使用idea远程调试jar包的配置过程”的完整攻略: 一、环境准备 1.1、服务器环境准备 在远程服务器上安装jdk,并将待调试的jar包上传至服务器。 1.2、本地环境准备 在本地电脑上安装jdk和IntelliJ IDEA。 二、远程配置 2.1、配置服务器启动参数 在远程服务器上启动jar包时,配置启动参数,增加debug模式参数,如下:…

    Java 2023年5月26日
    00
  • 使用java实现百万级别数据导出excel的三种方式

    我来详细讲解一下“使用Java实现百万级别数据导出Excel的三种方式”的完整攻略。 一、背景介绍 随着数据量的急剧增长,在实际工作中,我们经常需要将海量数据导出到Excel中进行分析和处理。但是当数据量达到百万甚至千万级别时,传统的导出方式会遭遇一系列的问题,比如内存溢出、导出速度过慢等。在这种情况下,我们需要使用一些高效、稳定的方式实现数据的导出。本文将…

    Java 2023年5月20日
    00
  • JSONObject用法详解

    JSONObject用法详解 什么是JSONObject? JSONObject是Java中一个常用的类库,通常用于处理JSON格式数据。JSONObject本质上是一个字符串到值的映射,是一种键值对的容器。在Java中使用JSONObject可以将JSON格式数据转化为Java对象进行操作。 JSONObject使用方法 创建JSONObject对象 最常…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部