jar 包和 lib 依赖分离,部署包缩小100倍

一、场景
docker 部署

Spring boot 项目jar包几百M

问题:如何缩小项目jar包,提高上传速度

二、思路
将依赖库提前打包即可,后续改动没有新增加依赖的情况下,如果有改动需重新打包依赖库

三、实战
1、项目 jar 包解压获取 lib + config

  • 正常打包获取 jeecg-system-start-3.6.0.jar
  • 桌面解压 获取如下文件

  • 获取 lib + config
  • 将 BOOT-INF 下的 lib 包拿出单独存放

  • 将 BOOT-INF\classes 下的 yml 文件存放到 config

 

2、获取简化版项目jar包

  • 修改pom.xml文件移除lib
 
<!--方案一:常规Jar部署方案-->
<!--    <build>-->
<!--        <plugins>-->
<!--            <plugin>-->
<!--                <groupId>org.springframework.boot</groupId>-->
<!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
<!--            </plugin>-->
<!--        </plugins>-->
<!--    </build>-->
 
<!--方案二:JAR分离打包部署-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <layout>ZIP</layout>
                    <includes>
                        <include>
                            <groupId>nothing</groupId>
                            <artifactId>nothing</artifactId>
                        </include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

3、打包项目

  • IDEA中 -- Maven -- 运行 clean -- install -- 获取 jar

4、编写dockerfile

FROM openjdk:8
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
COPY ./config /config
COPY ./lib /lib
ADD donger-mom-mes-3.0-executor.jar mes.jar
ENTRYPOINT ["java","-Dloader.path=/lib","-jar","mes.jar"]

 5、执行打包命令

docker build ./ -t mes

 

posted @ 2024-09-06 16:54  不爱学习的摆烂王  阅读(65)  评论(0编辑  收藏  举报