idea实现热部署

一.简介:
热部署就是正在运行状态的应用,修改了他的源码之后,在不重新启动的情况下能够自动把增量内容编译并部署到服务器上,使得修改立即生效。热部署为了解决的问题有两个, 一是在开发的时候,修改代码后不需要重启应用就能看到效果,大大提升开发效率;二是生产上运行的程序,可以在不停止运行的情况下进行升级,不影响用户使用。

二.idea开启热部署:
a.Tomcat热部署

  1. 在顶部找到程序运行操作栏, 点击Edit Configurations


    image.png

    2.点击你要配置的tomcat,点击deployment,点击”+“


    image.png

    3.然后选择你要部署的war包,热部署必须要选择带有exploded的war包
    image.png

    4.再切换回Server,按照下图标注配置


    image.png

    配置完后点击ok即可启动你的tomcat,然后改一下jsp、java文件实现热部署配置是否成功
    最后提示一下,Idea热部署并非绝对实时, 还是会有延时的,假如你手速快的话可能会出现改了并没有马上生效。所以此时不要怀疑热部署没有配置成功,稍微等一会你会看到开发工具左下角会有一个class reload的提示,出现这个提示才说明已经热部署完成了。
    image.png

    如果你想马上生效的话,可以点击下图标标注的按钮,或者使用快捷键Ctrl + F10
    image.png

    b.Spring boot程序热部署
    在顶部找到程序运行操作栏, 点击Edit Configurations,点击要配置的程序,按照下图标注地方配置
    image.png

    配置完后点击ok即可启动你的程序,java文件实现热部署配置是否成功。

但配置到这里只是会使java文件和其他静态资源热部署成功,但如果您的Spring boot程序是web程序,并且有jsp或Thymeleaf等页面模板引擎,则还需要在Spring boot的配置文件中配置。
如果是jsp, 在application.yml文件下加入配置


image.png

如果是Thymeleaf, 则在application.yml文件加入spring:thymeleaf:cache: false 配置
Spring boot程序除了通过上述步奏实现热部署,还可以通过给程序添加spring-boot-devtools依赖实现。

  <!-- 热部署 -->
<dependency> 
    <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId> 
    <version>2.0.4.RELEASE</version> 
   <!-- 启用 -->
<optional>true</optional> 
</dependency>

c.其他配置
如果你通过上面的步骤还没实现想要的热部署效果,可以继续做以下两个配置
1.开启Java Compiler的自动build


image.png

2.按住ctrl + shift +alt + / 选择Registry,按照下图标注配置


image.png

文章来自:
https://blog.csdn.net/qq_16148137/article/details/99694566

三.热启动在pom文件中报错解决
1.在本地仓库地址:repository\org\springframework\boot\spring-boot-devtools 删除,重新下载,然后进行maven update(右击项目,选择maven在下方reimport)
2.在pom文件中加入如下代码

 <repositories>
        <repository>
            <id>spring-releases</id>
            <name>Spring Releases</name>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
    </repositories>
 <pluginRepositories>
        <pluginRepository>
            <id>spring-releases</id>
            <name>Spring Releases</name>
            <url>https://repo.spring.io/libs-release</url>
        </pluginRepository>
    </pluginRepositories>
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容