时间:2021-05-20
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-webWeb中包含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目录,导致报错。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
springboot简介springboot框架抛弃了繁琐的xml配置过程,采用大量的默认配置简化我们的开发过程。所以采用Springboot可以非常容易和快速
什么SpringBoot?SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特
首先大家了解什么是SpringBoot?SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
简介:SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,
SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使