【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.mzph.cn/news/217671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google Earth Engine 中的形态计量分析:一种基于网络的在线交互式应用程序,用于全球范围内的分析

简介: 一种基于网络的在线交互式应用程序,用于全球范围内的分析一种基于网络的在线交互式应用程序,用于全球范围内的分析对于专注于流域和河流形态分析的研究人员来说,提取流域和河流的形态参数是一个耗时的过程,需要计算机硬件、GIS 软件资源和 GIS 专业知识。由于流域或…

WTN6170-8S语音芯片:射击游戏机新时代,CS音效射击体验引领者

在射击游戏机的刺激世界中&#xff0c;唯创知音的WTN6170-8S语音芯片&#xff0c;作为声音提示播放IC&#xff0c;为射击游戏机带来了更智能、更富有战斗感的音效体验&#xff0c;引领玩家进入一个崭新的射击游戏时代。 1. 战场氛围&#xff0c;引爆挑战 射击游戏机启动时&am…

AI+无代码助力企业供应链优化

内容来自演讲&#xff1a;潘峰 | 预见明日科技&#xff08;北京&#xff09;有限公司 | CEO 摘要 本文介绍了企业供应链中的挑战和解决方案。文章指出&#xff0c;供应链成本占企业经营成本的大部分&#xff0c;且存在供给端和需求端的高度不确定性。为应对这种不确定性&…

系统优化-TCP参数

net.ipv4.tcp_syncookies1 表示开启SYN Cookies。当出现SYN等待队列溢出时&#xff0c;启用cookies来处理&#xff0c;可防范少量SYN攻击&#xff0c;默认为0&#xff0c;表示关闭&#xff1b; net.ipv4.tcp_tw_reuse1 表示开启重用。允许将 TIME-WAIT sockets重新用于新的T…

【深度学习】注意力机制(二)

本文介绍一些注意力机制的实现&#xff0c;包括EA/MHSA/SK/DA/EPSA。 【深度学习】注意力机制&#xff08;一&#xff09; 【深度学习】注意力机制&#xff08;三&#xff09; 目录 一、EA&#xff08;External Attention&#xff09; 二、Multi Head Self Attention 三、…

ActiveMQ任意文件写入漏洞(CVE-2016-3088)

简述&#xff1a;ActiveMQ的fileserver支持写入文件(但是不支持解析jsp),同时也支持移动文件。所以我们只需要先上传到服务器&#xff0c;然后再移动到可以解析的地方即可造成任意文件写入漏洞。我们可以利用这个漏洞来上传webshell或者上传定时任务文件。 漏洞复现 启动环境 …

SQL注入攻击的后果

预计更新SQL注入概述 1.1 SQL注入攻击概述 1.2 SQL注入漏洞分类 1.3 SQL注入攻击的危害 SQLMap介绍 2.1 SQLMap简介 2.2 SQLMap安装与配置 2.3 SQLMap基本用法 SQLMap进阶使用 3.1 SQLMap高级用法 3.2 SQLMap配置文件详解 3.3 SQLMap插件的使用 SQL注入漏洞检测 4.1 SQL注入…

stm32 HAL库 发送接受 到了一定的字符串后就卡在.s文件中

问题介绍&#xff1a; 某个项目开发过程中&#xff0c;串口接收中断&#xff0c;开启了DMA数据传输&#xff0c;开启了DMA中断&#xff0c;开启DMA半满中断。然后程序运行的过程中&#xff0c;接收了一部分数据后就会卡在启动文件的DMA1_Ch4_7_DMA2_Ch3_5_IRQHandler 中断里。…

Etcd实战(二)-k8s集群中Etcd数据存储

1 介绍 k8s中所有对象的manifest都需要保存到某个地方&#xff0c;这样他们的manifest在api server重启和失败的时候才不会丢失&#xff0c;因此引入了etcd。在k8s中只有api server和etcd直接交互&#xff0c;其它组件都通过api server间接和etcd交互&#xff0c;这样做的好处…

[动态规划]矩阵取数游戏

矩阵取数游戏 题目描述 帅帅经常跟同学玩一个矩阵取数游戏&#xff1a;对于一个给定的n行*m列的矩阵&#xff0c;矩阵中的每个元素aij均为非负整数。游戏规则如下&#xff1a; 1. 每次取数时须从每行各取走一个元素&#xff0c;共n个。m次后取完矩阵所有的元素&#xff1b; 2…

Flink反压如何查看和优化

我们在使用Flink程序进行流式数据处理时&#xff0c;由于种种原因难免会遇到性能问题&#xff0c;如我们在使用Flink程序消费kafka数据&#xff0c;可能会遇到kafka数据有堆积的情况&#xff0c;并且随着时间的推移&#xff0c;数据堆积越来越多&#xff0c;这就表名消费处理数…

mysql在where中判断订单支付时间大于几号时,加上一个条件,否则不加条件

可以使用MySQL的DATE函数来提取订单支付时间中的日期&#xff0c;然后在WHERE子句中进行比较。以下是示例代码&#xff1a; SELECT * FROM orders WHERE IF(DATE(payment_time) > 2021-07-01, order_status paid, TRUE)上述代码中&#xff0c;IF函数用于在支付时间大于202…

工作中遇到的英文问题(遇到就更新)

12.13 1.基数怎么写 odd 2.偶数怎么写 even 3.基准怎么写 benchmark "bench" 是一个英语词汇&#xff0c;可以指长凳、工作台或实验台的意思&#xff0c;具体取决于上下文。 4.比例怎么写 ratio 5.是不是2的n次方 isPowerOfTwo 6.得到2的n次方 n这个数 即求…

.NET中的并行集合

作为.NET 4并行扩展的一部分&#xff0c;新的System.Collections.Concurrent命名空间中包含一些新的集合。它们被设计为在含有较少锁的多线程并发操作时是安全的。该命名空间下还包含三个用于对并发操作的集合进行分区的类&#xff0c;但在此我们不讨论它们。 1. IProducerCon…

机器学习---Boosting

1. Boosting算法 Boosting思想源于三个臭皮匠&#xff0c;胜过诸葛亮。找到许多粗略的经验法则比找到一个单一的、高度预 测的规则要容易得多&#xff0c;也更有效。 预测明天是晴是雨&#xff1f;传统观念&#xff1a;依赖于专家系统&#xff08;A perfect Expert) 以“人无…

【flink番外篇】3、flink的source(内置、mysql、kafka、redis、clickhouse)介绍及示例(5)- clickhouse

Flink 系列文章 一、Flink 专栏 Flink 专栏系统介绍某一知识点&#xff0c;并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分&#xff0c;比如术语、架构、编程模型、编程指南、基本的…

软考 系统架构设计师系列知识点之大数据(2)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之大数据&#xff08;1&#xff09; 所属章节&#xff1a; 第11章. 未来信息综合技术 第6节. 云计算和大数据技术概述 大数据和云计算已成为IT领域的两种主流技术。“数据是重要资产”这一概念已成为大家的共识&#xf…

云基础软件深化合作,云轴科技ZStack与麒麟软件战略签约

12月8日&#xff0c;云轴科技ZStack与麒麟软件战略合作签约仪式在北京举行&#xff0c;双方对过往紧密合作表达了充分肯定&#xff0c;并就进一步联合技术创新、打造重点行业标杆和持续赋能客户达成高度共识。云轴科技创始人&CEO张鑫和麒麟软件高级副总经理谢文征共同见证双…

Oracle(2-17) RMAN Maintenance

文章目录 一、基础知识1、Retention Policy 保留政策2、Recovery Window - Part 1 恢复窗口-第1部分3、Cross Checking 交叉检查4、The CROSSCHECK Command CROSSCHECK命令5、OBSOLETE VS EXPIRED 过时与过期6、Deleting Backups and Copies 删除备份和副本7、The DELETE Comma…

无参RCE [GXYCTF2019]禁止套娃1

打开题目 毫无思绪&#xff0c;先用御剑扫描一下 只能扫出index.php 我们尝试能不能用php伪协议读取flag php://filter/readconvert.base64-encode/resourceindex.php php://filter/readconvert.base64-encode/resourceflag.php 但是页面都回显了429 怀疑是不是源码泄露 用…