【SpringBoot】人工更新SpringBoot项目,Jar包太大问题解决,SpringBoot瘦包

楼主也是刚接触SpringBoot几天,以前都是用SpringMVC开发,这里跟小伙伴们分享一个需求问题,如果有遇到的话可以继续往下看,能帮助到各位,是最好不过啦。

我们知道用SpringBoot开发后,通过maven打包之后会生成一个xxx.jar包,那这个jar包往往很大,因为里面内嵌着你的其他很多依赖。如果你遇到了你的网络不是很好,或者说服务器远在外网,那么你更新项目上传将是一个非常痛苦的事情。当然你要是会Jenkins这种东西,这种问题会得到很好的解决,因为楼主自己刚转boot,以下是我能目前做到的一种做法,大家可以尝试一下。

基本原理

基于曾经SpringMVC项目部署的经历,可以得出,其实我们最频繁操作的往往是自己写的那些业务代码,或者一些自定义类的编写,组合起来也不过300-400k。所以我们要做的就是把不经常更新的比如一些依赖等jar包统统放置外部,启动时加载即可。

第一步

在pom.xml中加入以下配置

<plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <layout>ZIP</layout>
                    <!--你要保留的依赖  改这里基本就可以了-->
                    <includes>
                        <include>
                            <groupId>com.gaby.xx</groupId>
                            <artifactId>aa-bb</artifactId>
                        </include>
                    </includes>
                </configuration>
            </plugin>
            <plugin>
                <!--拷贝第三方依赖文件到指定目录-->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            <excludeTransitive>false</excludeTransitive>
                            <stripVersion>false</stripVersion>
                            <includeScope>runtime</includeScope>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!--跳过测试-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
第二步

用-Dloader.path 来加载lib文件夹下的依赖

java -jar -Dloader.path=lib xxx.jar

由此,下次再次打包出来的jar,只有几百k了,其余依赖都在lib中。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰肥啊

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值