外置Tomcat无法使用devtools实现热部署

练手的项目每次有源码或者页面更新都需要重新启动,不能忍,热部署走一波

这个项目是用外置Tomcat启动的
在这里插入图片描述
项目层级目录
在这里插入图片描述
在这里插入图片描述
模块依赖关系:service 依赖于 model 依赖于 api
(启动类在service模块中)

引入devTools依赖,确定相关idea配置无误后,发现热部署没有生效
得出结论: devTools无法对使用对外置的tomcat运行的项目生效

于是在网上搜索外置tomcat项目实现热部署的方法
tomcat实现热部署

按照以上方法的确实现了热部署,但是热部署的延迟太长了,感觉每次都会有大量代码重新编译,伴随着当前项目被install进本地仓库 (excuse me? 我没打算将项目install进本地仓库啊 这个操作不是浪费时间么) 也许是我的相关配置不到位吧,由于比较排斥这种热部署方式,遂不深究,还是准备使用devtools 所以将项目改成使用内置tomcat运行

具体步骤:

  1. 对server模块的pom文件进行修改
    (1) 首先将打包方式由war变为jar
    (2) 由于项目视图使用的是jsp 所以需要添加jsp相关jar包和启动器 否则无法解析jsp视图 可能会报错:This application has no explicit mapping for /error, so you are seeing this as a fallback.
		<dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
<!--版本略->

<!--此外,最好将内置spring-boot-starter-web的内置tomcat排除,重新引入scope为provided的tomcat依赖 ->
  1. 配置项目工作目录 由于该项目是多模块项目,使用jsp需要指定当前模块为工作路径(默认是根路径)
    在这里插入图片描述
    edit configurations > 找到启动类 > configuration > working directory > 填写 %MODULE_WORKING_DIR%
    在这里插入图片描述

配置文件不需要修改
从外置tomcat转为内置tomcat运行,可能会出现jar包冲突 e.g 日志jar包的冲突 e.g.
Class path contains multiple SLF4J bindings.slf4j-log4j12从项目中移除即可

顺利实现热部署 Game Over

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值