最近在编写自己项目的时候,发现部署的过程中,打的Jar
包过大,导致传输到服务器上的时候速度有点缓慢。
要是平常也就算了,那天我想着就一个小问题就没有本地验证了,直接发上服务器。
这是一个不好的习惯,大家不要学 一定要保证代码验证通过后再进行发布部署
结果部署后,发现改的不对,连着这样搞了三次。
这三次上传的时间,我就觉得等得没有必要了,都是自己的源代码改动,没有涉及到依赖包的新增修改,打出来的Jar
包还是170M
多,也难怪别人说Java
,SpringBoot
重呢
那么结合这次不愉快的体验,我找了方法对Jar
包进行优化瘦身,也就是将其中的lib
包从jar
包本体中剥离出来
看看是如何做的吧
没错,既然是打Jar
包,那么肯定是我们的构建工具Maven
了,我们来看看pom.xml
文件,要经过哪些修改,才可以达成我们想要的效果
首先是我们的org.springframework.boot
插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<layout>ZIP</layout>
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
</plugin>
只需要这样,就能将Jar
包中的lib
包给剔除,那么现在,我们来重新打包一下,结果如下
如果我们的lib
包有改动,换了依赖,或者新增了依赖,那么我们就需要更新部署的lib
包。但是,在上图中,我们没有lib
包,那该怎么办,我们现在还需要将lib
包生成出来,放在Jar
包的同级目录下
这时候,我们需要一个新的Maven
构建插件,如下
<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>
<excludeScope>provided</excludeScope>
</configuration>
</execution>
</executions>
</plugin>
添加上了,我们再来重新打包一下,这一次应该是没有问题了,看下结果
完美,成功分离
那么如何去启动这个Jar
包呢,我直接下面的命令试了一下
java -jar banmoon-web-base.jar
发现不行,没找到对应的包啊
那么该如何启动这个Jar
包呢,这个时候,需要换一种Jar
启动脚本,我们换这个试试看
这个时候,就能够顺利启动了,非常nice
好了,希望大家能够掌握本项技能,让你的工程也能够通过这样进行瘦身,优化传输速度。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。