SpringBoot框架打包体积简化过程图解

 更新时间:2020年05月11日 14:30:04   作者:菜鸡的日常总结  
这篇文章主要介绍了SpringBoot框架打包体积简化过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Springboot 框架极大的的简化了代码的框架集成开发,想当年还是用ssm框架组合时,那种配置令人头疼,还有Springboot框架自带tomcat服务器,简化了我们的环境搭建。但是Springboot框架自带tomcat服务器也有问题,就是导致一个服务很大,比如一个简单的业务系统,可能因为导入的第三方jar包比较多,导致打包出来的jar非常大。假如是内网上传至服务器,还好,但是假如是在阿里云这种云服务器,就很考验带宽的上行速度了。比如我家50M宽带,下行很快,但上行才3M,一个jar包100M,我微调一下重新部署,这中间的时间就是10分钟去了。所以也在琢磨如何简化jar包。

下图是spingboot框架打出来的jar目录情况

在BOOT-INF下面

这个lib下面就是第三方jar包。

下面就来简化它吧。

我的项目目录结构如下

course
  course-common
  course-pojo
  course-service
  course-web

Web中包含springboot框架main启动入口,打包时,会将 course-common、course-pojo、course-service 这三个服务打成jar包,集成在 course 最终的jar里lib目录下。

修改course-web服务的pom文件

<build>
    <finalName>mml-course</finalName>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <outputDirectory>E:\JARS\pre</outputDirectory>
          <layout>ZIP</layout>      <!—- 必须加这句话 -->
          <includes>      <!—- 表示项目打包时集成哪些jar包-->
            <include>
              <groupId>com.mml</groupId>
              <artifactId>mml-course-service</artifactId>
            </include>
            <include>
              <groupId>com.mml</groupId>
              <artifactId>mml-course-pojo</artifactId>
            </include>
            <include>
              <groupId>com.mml</groupId>
              <artifactId>mml-course-common</artifactId>
            </include>
          </includes>
        </configuration>
      </plugin>
    </plugins>

重点关注两处,layout 和 includes 。

layout 是为了 springboot jar简化后能够加载第三方jar包目录,如果没加入这句话,在待会儿启动时,会报错。

includes 是指包含哪些项目的jar包,因为我项目结构的问题,我必须将 service 、pojo、common这三个项目打包进去。假如你的项目中没有自己项目依赖可以写成如下格式,表示不包含任何jar包。

<includes>
  <include>
    <groupId>nothing</groupId>      
    <artifactId>nothing</artifactId>
  </include>
</includes>

修改完pom.xml后,执行 mvn clean package 命令打包出来的springboot项目jar包大小会从100M缩小到100K,此时的jar包并不能直接运行,因为没有这些第三方依赖。

上传至服务器,速度会快很多,原来的jar包运行命令是

nohub java –jar mml-course.jar > ./logs/course.out 2>&1 &

nohub 表示后台执行这个jar。

现在需要改成如下格式

nohub java –Dloader.path=/path/lib –jar mml-course.jar > ./logs/course.out 2>&1 &

加入了 –Dloader.path=/path/lib , /path/lib 根据实际的第三方jar所在目录,当然也可以加载多个地址,用,分隔就好了。一定要在pom中加入<layout>ZIP</layout>,否则这步无法加载第三方jar目录,导致报错。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 持久层ORM框架Hibernate框架的使用及搭建方式

    持久层ORM框架Hibernate框架的使用及搭建方式

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库,本文重点给大家介绍持久层ORM框架Hibernate框架的使用及搭建方式,感兴趣的朋友一起看看吧
    2021-11-11
  • Spring Bean基本管理实例详解

    Spring Bean基本管理实例详解

    这篇文章主要介绍了Spring Bean基本管理,以实例形式较为详细的分析了Spring Bean的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • 浅谈Java中的LinkedHashSet哈希链表

    浅谈Java中的LinkedHashSet哈希链表

    这篇文章主要介绍了浅谈Java中的LinkedHashSet哈希链表,LinkedHashSet 是 Java 中的一个集合类,它是 HashSet 的子类,并实现了 Set 接口,与 HashSet 不同的是,LinkedHashSet 保留了元素插入的顺序,并且具有 HashSet 的快速查找特性,需要的朋友可以参考下
    2023-09-09
  • 四步五分钟Spring4快速集成Swagger

    四步五分钟Spring4快速集成Swagger

    这篇文章主要为大家详细介绍了四步、五分钟Spring4快速集成Swagger的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Java使用BigDecimal进行高精度计算的示例代码

    Java使用BigDecimal进行高精度计算的示例代码

    本篇文章主要介绍了Java使用BigDecimal进行高精度计算的示例代码,具有一定的参考价值,有兴趣的可以了解一下
    2017-09-09
  • 实践讲解SpringBoot自定义初始化Bean+HashMap优化策略模式

    实践讲解SpringBoot自定义初始化Bean+HashMap优化策略模式

    本篇讲解了SpringBoot自定义初始化Bean+HashMap优化策略模式,通过实践的方式更通俗易懂,对此不了解的同学跟着小编往下看吧
    2021-09-09
  • Java中输入被跳过情况的深入探究

    Java中输入被跳过情况的深入探究

    这篇文章主要给大家介绍了关于Java中输入被跳过情况的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • java高级应用:线程池的全面讲解(干货)

    java高级应用:线程池的全面讲解(干货)

    这篇文章主要介绍了java高级应用:线程池的全面讲解(干货),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java中从JSON转Java实体的多种方法详解

    Java中从JSON转Java实体的多种方法详解

    在现在的日常开发中不管前端还是后端,JSON 格式的数据是用得比较多的,甚至可以说无处不在,这篇文章主要给大家介绍了关于Java中从JSON转Java实体的多种方法,需要的朋友可以参考下
    2023-12-12
  • 浅谈mybatis中SQL语句给boolean类型赋值问题

    浅谈mybatis中SQL语句给boolean类型赋值问题

    这篇文章主要介绍了浅谈mybatis中SQL语句给boolean类型赋值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11

最新评论