8.1.从零开始学springboot-idea-热部署

本文介绍如何在IDEA中配置热部署,通过引入spring-boot-devtools依赖,实现SpringBoot项目无需重启服务即可看到修改效果。只需几步简单配置,即可提高开发效率。

背景

通过前几节大家应该都能通过idea创建简单的springboot-mybatis的项目了,博主本身从业php多年,对java这种需要编译在运行的流程还是太烦操,简单的项目每次改点东西都需要停止服务,重启服务。IDEA很好的解决了这个问题,只需要简单的几项配置,就能无需手动重启服务就能动态的看到改后的结果(本质上它使用了自动编译&部署的策略),虽然编译时间还是个问题,但是也解决了我们的操作步骤。

IDEA热部署配置

首先我们需要安装springboot的工具依赖,直接在项目的pom.xml中加入:

 <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

然后(idea配置了自动import的无需此操作)

1.png

而后

2.png

3.png

怕新建项目重复操作的同学最好配置成全局的

4.png

然后 按快捷键"SHIFT+CTRL+A"

5.png

找到并勾选
“compiler.automake.allow.when.app.running”
而后

6.png

7.png

最后重启服务即可。

之后我们可以看到每次更改后,只需要刷新页面技能看到效果,同时idea的console输出窗口能看到自动部署重启服务的记录。

请关注我的订阅号

订阅号.png

[root@controller-06 ~]# yum install -y centos-release-qemu-ev 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 无须任何处理 [root@controller-06 ~]# yum install -y qemu-img-ev 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务 ---> 软件包 qemu-img-ev.x86_64.10.2.12.0-44.1.el7_8.1 将被 安装 --> 正在处理依赖关系 libgfapi.so.0(GFAPI_3.4.0)(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libgfapi.so.0(GFAPI_3.5.0)(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libgfapi.so.0(GFAPI_6.0)(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libgnutls.so.28(GNUTLS_1_4)(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libgnutls.so.28(GNUTLS_3_1_0)(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libgfapi.so.0()(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libgfrpc.so.0()(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libgfxdr.so.0()(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libglusterfs.so.0()(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libgnutls.so.28()(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libiscsi.so.2()(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 librados.so.2()(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 librbd.so.1()(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 正在处理依赖关系 libtcmalloc.so.4()(64bit),它被软件包 10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 需要 --> 解决依赖关系完成 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:libgnutls.so.28(GNUTLS_3_1_0)(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:librbd.so.1()(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:libglusterfs.so.0()(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:libgfxdr.so.0()(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:libgnutls.so.28(GNUTLS_1_4)(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:libgnutls.so.28()(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:libgfapi.so.0(GFAPI_6.0)(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:librados.so.2()(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:libiscsi.so.2()(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:libgfapi.so.0(GFAPI_3.4.0)(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:libgfapi.so.0(GFAPI_3.5.0)(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:libtcmalloc.so.4()(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:libgfapi.so.0()(64bit) 错误:软件包:10:qemu-img-ev-2.12.0-44.1.el7_8.1.x86_64 (CentOS-QEMU-EV) 需要:libgfrpc.so.0()(64bit) 您可以尝试添加 --skip-broken 选项来解决该问题 您可以尝试执行:rpm -Va --nofiles --nodigest [root@controller-06 ~]# qemu-img --version | head -1 -bash: qemu-img: 未找到命令
最新发布
06-11
<think>嗯,用户提出的问题比较典型,是关于CentOS7安装qemu-img-ev时的依赖缺失问题。结合之前的引用资料和我的系统知识,准备从几个维度来帮助用户:用户环境看起来很明确:CentOS7系统,尝试安装qemu-img-ev但报出两个关键依赖缺失(libgnutls.so.28和librbd.so.1)。这类问题在老旧系统上很常见,尤其是qemu这类活跃开发的开源工具。回顾引用材料发现三个关键参考点:1)引用1和2都提到了用--skip-broken选项和替换版本号的方案,这在qemu场景下同样适用——可能需要找旧版本包2)引用4给出的rpm本地安装依赖包方法特别值得借鉴3)引用3提到的依赖冲突提示很有参考性,因为qemu可能与系统原有虚拟化组件冲突准备采用的解决思路是递进式的:首先用最保险的YUM自动解决(用户可能还没尝试过)如果失败就采用引用4里的本地下载rpm方案最后才考虑编译安装这个高风险操作这里特别注意libgnutls的版本问题。查过资料确认CentOS7默认带的gnutls是2.12版,而28版需要从第三方源获取。准备推荐用户使用较新的CentOSSIG源。在描述具体方案时,需要详细到每条命令:下载包要给出具体URL路径编译步骤要提醒openssl-devel等前置条件安全方面要特别警告第三方源的风险,以及编译安装对生产环境的影响。用户既然在装qemu-img-ev,可能涉及虚拟机管理,稳定性很重要。最后考虑用户可能是云环境运维人员,还设计了三个实用衍伸问题:-自动依赖处理的工具选择(用户可能不熟悉dnf)-老系统长期维护建议(涉及EOL问题)-编译和包安装的优劣(针对高级用户)</think> 在CentOS 7中解决`qemu-img-ev`依赖缺失问题(如`libgnutls.so.28`、`librbd.so.1`等),可参考以下方案: --- ### 解决方案分步说明 #### 1. **启用EPEL和额外仓库** ```bash sudo yum install epel-release sudo yum install https://libguestfs.org/download/builder/centos-7/appliance/x86_64/appliance-1.44.2-1.el7.centos.x86_64.rpm ``` > 官方仓库可能包含所需依赖[^1][^3] #### 2. **手动补充依赖** - **查找缺失的包**: ```bash yum provides "*/libgnutls.so.28" # 查找提供该库的包 yum provides "*/librbd.so.1" ``` > 通常`libgnutls.so.28`属于**gnutls30**包,`librbd.so.1`属于**librbd1**包 - **安装依赖**: ```bash sudo yum install gnutls30 librbd1 ``` 若仓库无此包,需从**第三方源下载RPM**(如[PKGS.org](https://pkgs.org)): ```bash wget [rpm下载链接] # 例如wget http://mirror.centos.org/.../gnutls30-3.x.rpm sudo rpm -ivh --nodeps gnutls30-*.rpm librbd1-*.rpm # 强制安装 ``` > 注意:需匹配CentOS 7的x86_64架构[^2][^4] #### 3. **处理冲突依赖** 若出现`已废弃/冲突`提示(类似引用[3]): ```bash sudo rpm -e --nodeps mariadb-libs # 移除冲突包(示例) sudo yum install qemu-img-ev # 再次尝试安装 ``` #### 4. **添加专用仓库** 通过**KVM官方仓库**安装最新兼容版本: ```bash sudo yum install qemu-kvm-ev # 含qemu-img-ev的增强版 ``` > 需确保启用`centos-qemu-ev`源([官方文档](https://www.centos.org/docs/)) --- ### 补充说明 1. **关键依赖来源**: - `librbd.so.1` → **ceph**相关包(如`librbd1`) - `libgnutls.so.28` → **gnutls30**(需CentOS 7第三方编译包) 2. **强制安装风险**: 使用`rpm -ivh --nodeps`可能破坏依赖链,建议优先通过仓库安装[^4]。 --- ### 预防性建议 - **升级系统**:CentOS 7已停止维护,建议迁移至**CentOS Stream 8+** 或 **Rocky Linux** 以获得更好的兼容性。 - **容器化方案**: 使用Docker封装运行环境(参考引用[1]): ```bash docker run -it --rm centos:7 yum install qemu-img-ev ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值