Springboot项目打瘦包(将依赖包放到jar包外)

2023-11-14

一般springboot项目我们不做任何配置的话,打包会包含很多的依赖,生成的包过大,动辄100M以上,往生产环境上传很慢。所以把所有用的jar包打到外部,这样生成的小包中只有自已开发的程序,基本可以控制在1M以内,效果甚好。

首先把springboot自动生成的plugin删掉:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

然后添加以下内容:

<build>
  <resources>
  	  <!--打包时添加有用前端资源和配置文件,如resource下还有一些无关紧要的文件,该配置就可以尽量减小打包的jar的大小-->
      <resource>
          <directory>src/main/resources</directory>
          <includes>
              <include>static/</include>
              <include>templates/</include>
              <include>*.properties</include>
          </includes>
          <filtering>true</filtering>
      </resource>
  </resources>

  <plugins>
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <configuration>
              <archive>
                  <!--主类: 使用清单文件 -->
                  <manifest>
                      <addClasspath>true</addClasspath>
                      <mainClass>com.zhbr.gs_sparklauncher.GsSparkLauncherApplication</mainClass>
                      <classpathPrefix>lib/</classpathPrefix>
                  </manifest>
              </archive>
          </configuration>
      </plugin>
      <!-- 将依赖jar包统一拷贝到lib文件夹 -->
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <executions>
              <execution>
                  <id>copy</id>
                  <phase>package</phase>
                  <goals>
                      <goal>copy-dependencies</goal>
                  </goals>
                  <configuration>
                      <outputDirectory>${project.build.directory}/lib</outputDirectory>
                  </configuration>
              </execution>
          </executions>
      </plugin>
  </plugins>
</build>

打包的效果:

在这里插入图片描述

项目部署:

config目录存放配置文件,lib目录存放依赖jar包。部署后的效果如下图所示:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Springboot项目打瘦包(将依赖包放到jar包外) 的相关文章

随机推荐

  • Java中的常量池

    一 在Java中有那些常量池 谈到常量池 在Java体系中 共用四种常量池 分别是字符串常量池 Class常量池和运行时常量池 JAVA 基本类型的封装类及对应常量池 二 字符串常量池 在JVM中 为了减少相同的字符串的重复创建 为了达到节
  • 手写python实现梯度下降算法(base问题:多元线性回归)

    手写python实现梯度下降算法 因为课程设计的原因 接触了很多和机器学习相关的事情 在学习的时候发现 机器学习如果只是听不写代码基本什么都学习不到 于是自己利用python手写了大部分的常见的基础的算法 很有趣呢 慢慢更新咯 文章目录 手
  • c语言中y=0x20什么意思,ASCII码0x20之前的码分别是什么意义?

    ASCII码0x20之前的码分别是什么意义 ascii码0x20之前的码分别是什么意义 c 语言 ascii码表中的前32个都是些控制字符 nul 0 0000 0x00 sp 32 0040 0x20 64 0100 0x40 96 01
  • 05 Django工程创建、注册子应用及ORM模型

    一 创建django工程 1 创建 cd Desktop test django admin startproject name 例如 django admin startproject testmanager cd testmanager
  • java并发包:生产者消费者模式

    本文转载至 http blog csdn net a910626 article details 51900974 生产者消费者模式是一个经典的多线程设计模式 它为多线程间的协作提供了良好的解决方案 在生产者消费者模式中 通常有两类线程 即
  • Learn_C++单词

    nomenclature Deprecated cubbyholes render inadvertently polygons truncation decrement ballistic refutation exotic oversi
  • linux网络编程一:epoll

    简介 一提到linux高性能服务器编程 epoll就是绕不开的话题 当前网络库在linux上实现也主要是以epoll为主 epoll的主要优点有 当检查大量的文件描述符时 epoll的性能比select和poll要高很多 epoll 既支持
  • mongoTemplate操作MongoDB排序

    解决项目中遇到的排序问题 Mark一下 Override public List
  • 【定时将hbase的索引同步到solr的core,当同步失败时,回滚core】好记性不如烂笔头,我将工作中写的自动化脚本记录在此,供大家参考

    前言 此脚本不包含core的创建 创建core请移步他处 本贴侧重core快照的创建 快照状态查询 core的删除 从快照恢复core hbase到solr的同步不做为本贴的重点 同步脚本syn solr sh内容 binbash 定义co
  • 虚拟机使用教程

    文章目录 前言 1 什么是母机与子机 2 常用快捷键 一 如何开机 二 如何克隆及删除虚拟机 三 如何修改硬件信息 改机器码 四 虚拟机内外如何传文件 五 调整虚拟机窗口大小及虚拟机全屏显示 六 如何调整cpu 内存 七 虚拟机开启声音 不
  • latex 约等于且大于 小于

    约等于 a approx b gt approx 大于约等于 a gtrsim b gt gtrsim 小于约等于 a
  • 基于QT 实现的LearnGL例子

    LOpenGL 是学习OpenGL非常好的资料 网址是 LearnOpenGL CN learnopengl cn github io 最近复习OpenGL 基于QT 拷贝实现了LearnGL的一些例子 下载地址 QT OpenGL 学习基
  • UML_类图

    在UML类图中 常见的有以下几种关系 泛化 Generalization 实现 Realization 关联 Association 聚合 Aggregation 组合 Composition 依赖 Dependency 1 泛化 Gene
  • 【Python】python 3.x 数据类型 吐血汇总

    文章目录 1 整数型 2 浮点数 3 字符串 4 布尔值 5 空值 6 变量 7 定义字符串 1 raw字符串 多行字符串 2 Unicode字符串 8 集合 list 1 访问列表中的值 2 更新列表 3 删除列表元素 4 Python列
  • 数据处理中的标准化、归一化,究竟是什么?

    原文链接 数据处理中的标准化 归一化 究竟是什么 大家好 我是小一 今天说一个比较重要的内容 无论是在算法建模还是在数据分析都比较常见 数据归一化和标准化 开始之前 请你先把网上看到的所有相关的博客 帖子都忘掉 不说全部 能讲清楚这个概念的
  • T5模型简单介绍

    目录 一 概要 二 深入扩展 2 1 两个要素 2 2 预训练方法 一 概要 谷歌公司的研究人员提出的 T5 Text to Text Transfer Transformer 有5个T开头的单词 所以叫做T5 模型采用了一种与前述模型截然
  • 成功解决Python中ValueError: not enough values to unpack (expected 10, got 2)故障

    对split函数不熟悉 将1修改为10即成功 同时将文件中所有空格键替换为Tab键 个人觉得这一步没啥用 这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入
  • linux screen rz/sz 文件卡死了快速退出的方法

    项目场景 服务器上通过sz下载txt格式的数据保存于本地遇到问题 问题描述 Linux 中使用tmux screen rz sz 命令下载文件卡死 出现如下图所示情况 快速退出方法 有如下解决办法 按住Ctrl键 再按五次x键 强行终断传输
  • 深入解析Spring Boot中最常用注解的使用方式(上篇)

    摘要 本文将详细介绍Spring Boot中最常用的注解的使用方式 并通过代码示例加以说明 通过学习这些注解 读者将能够更好地理解和运用Spring Boot框架 构建高效的企业级应用 目录 第一部分 常见的控制器注解 1 RequestM
  • Springboot项目打瘦包(将依赖包放到jar包外)

    一般springboot项目我们不做任何配置的话 打包会包含很多的依赖 生成的包过大 动辄100M以上 往生产环境上传很慢 所以把所有用的jar包打到外部 这样生成的小包中只有自已开发的程序 基本可以控制在1M以内 效果甚好 首先把spri