首页 文章详情

SpringBoot打包后Jar包很大怎么办?

甲蛙全栈 | 2123 2021-02-06 01:23 0 0 0
UniSMS (合一短信)

SpringBoot使用spring-boot-maven-plugin插件打包很方便,启动也方便,可是整个Jar包太大了,不方便传输,怎么办?

| 喜欢听我叨叨的,直接看视频 |

问题:

以甲蛙博客为例:按传统方法打成一个Jar包,大小大概是41M:

3250940ba11dceca63bf811591e6094d.webp

主要是在Jar里的blog1.jar\BOOT-INF\lib\这个目录下,把所有依赖的第三方Jar全加进来了。


解决方法:

第1步:将第三方Jar单独存放,使用下面的命令,把依赖的包放到D:\temp\lib:

mvn dependency:copy-dependencies -DoutputDirectory=D:\temp\lib -DincludeScope=runtime


第2步:单独打包我们自己写的代码,修改pom.xml:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <mainClass>com.jiawa.blog.config.BlogApplication</mainClass>
        <layout>ZIP</layout>
        <includes>
            <include>
                <groupId>nothing</groupId>
                <artifactId>nothing</artifactId>
            </include>
        </includes>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>


打出来的包,只有几百K

f62644e62340ed87f35cf83a64f4889e.webp


第3步,怎么运行呢?使用如下命令,相关的路径需要改成自己的

java -Dloader.path=d:\temp\lib -jar target/blog.jar


大功告成!!!

后续项目迭代,如果有加第三方依赖,重复第1步,导出所有Jar,再传到服务器上。如果没有,则可忽略第1步


如有问题,欢迎加QQ群交流:174545069 java全栈交流群

关于阿里云产品购买指导和优惠,可以QQ联系:82144921

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter