【Jeecg Boot 3 - 第二天】1.2、jar 包和 lib 依赖分离,部署包缩小100倍

一、场景

二、思路

三、实战

▶  2.1、项目 jar 包解压获取 lib + config

Stage 1:正常打包获取 jeecg-system-start-3.6.0.jar

Stage 2:解压 获取如下文件

Stage 3:获取 lib + config

▶  2.2、获取简化版项目jar包

Stage 1:修改pom.xml文件移除lib

Stage 2:打包项目

▶  2.3 编写dockerfile

▶  2.4 将文件上传到服务器下

▶  2.5 创建并运行容器(启动项目)

四、思考

一、场景

  • docker-compose 部署

  • Spring boot 项目几百M

  • 问题:如何缩小项目jar包

二、思路

        将依赖库提前打包即可

三、实战

▶  2.1、项目 jar 包解压获取 lib + config

Stage 1:正常打包获取 jeecg-system-start-3.6.0.jar

Stage 2:解压 获取如下文件

jar xvf jeecg-system-start-3.6.0.jar 

Stage 3:获取 lib + config

  • 将 BOOT-INF 下的 lib 包拿出单独存放

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

▶  2.2、获取简化版项目jar包

Stage 1:修改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>

Stage 2:打包项目

  • IDEA中 -- Maven -- 运行 clean -- install -- 获取 jeecg-system-start-3.6.0.jar

▶  2.3 编写dockerfile

FROM openjdk:8
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
COPY ./config /config
COPY ./lib /lib
ADD jeecg-system-start-3.6.0.jar jeecg-system-start-3.6.0.jar
ENTRYPOINT ["java","-Dloader.path=/lib","-jar","jeecg-system-start-3.6.0.jar"]

▶  2.4 将文件上传到服务器下

▶  2.5 创建并运行容器(启动项目)

# 进入上一步上传的目录下

cd /mnt/docker/jeecgboot3.6/


# 启动项目

docker-compose up -d --build

四、思考

jenkins 和 k8s 部署时lib 库如何管理 (后期补上)

相关推荐

  1. spring boot 部署jar瘦身 jarlib分离

    2023-12-13 08:50:02       31 阅读
  2. jar 依赖相关

    2023-12-13 08:50:02       59 阅读
  3. flink源码分析 - jar中提取主类第三方依赖

    2023-12-13 08:50:02       45 阅读
  4. docker 部署 springboot 2.6.13 jar流程笔记

    2023-12-13 08:50:02       60 阅读
  5. 后端jar部署常见运行停止命令

    2023-12-13 08:50:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-13 08:50:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-13 08:50:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-13 08:50:02       87 阅读
  4. Python语言-面向对象

    2023-12-13 08:50:02       96 阅读

热门阅读

  1. Linux下的网络服务

    2023-12-13 08:50:02       54 阅读
  2. 为 PHP 引入 Python 生态的经验分享

    2023-12-13 08:50:02       65 阅读
  3. 【MODBUS】libmodbus库写一个Modbus TCP客户端

    2023-12-13 08:50:02       60 阅读
  4. 常用的线程锁

    2023-12-13 08:50:02       65 阅读
  5. 【C#】Microsoft C# 视频学习总结

    2023-12-13 08:50:02       57 阅读
  6. scala---03

    2023-12-13 08:50:02       57 阅读
  7. TrustGeo论文问题理解

    2023-12-13 08:50:02       70 阅读
  8. 常见的设计模式-简述

    2023-12-13 08:50:02       61 阅读
  9. PHP中GET和POST方法的区别是什么?

    2023-12-13 08:50:02       57 阅读
  10. 机器学习---KNN案例

    2023-12-13 08:50:02       61 阅读