当前位置: 首页 > news >正文

【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 库如何管理 (后期补上)

http://www.lryc.cn/news/261600.html

相关文章:

  • 电商平台的易聊集成:无代码开发,API连接,CRM支持
  • Draw.io or diagrams.net 使用方法
  • CAPL——发送自定义报文
  • 接口自动化测试实操【设置断言思路】
  • windows redis 允许远程访问配置
  • 三、JS逆向
  • HBase 高可用集群详细图文安装部署
  • 现代雷达车载应用——第2章 汽车雷达系统原理 2.6节 雷达设计考虑
  • 【JVM从入门到实战】(五)类加载器
  • 计算机毕业设计 基于Web的城市旅游网站的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 【人工智能革命】:AIGC时代的到来 | 探索AI生成内容的未来
  • spring-boot-data-jpa、JPA实现分页
  • 云原生之深入解析如何在Kubernetes中快速启用Cgroup V2支持
  • QT实现四则运算计算器
  • mysql的redolog、undo、binlog的作用
  • 京东大数据-10月京东咖啡机市场销售数据分析-销售额增长41%,德龙等海外头部品牌店铺数据分析
  • 【Android12】WindowManagerService架构分析
  • 部署LVS的NET模式
  • 如何在Facebook Business Manager进行企业认证
  • 推荐一款好用的包含表格识别的OCR网站
  • linux 块设备驱动程序介绍
  • 知识付费小程序开发:构建个性化学习平台的技术实践
  • OpenCV极坐标变换函数warpPolar的使用
  • 类与接口常见面试题
  • Windows mysql5.7 执行查询/开启/测试binlog---简易记录
  • 文档安全加固:零容忍盗窃,如何有效预防重要信息外泄
  • 前端如何设置模板参数
  • 06 使用v-model实现双向数据绑定
  • 【C++11特性篇】C++11中新增的initializer_list——初始化的小利器(2)
  • 计算机网络传输层(期末、考研)