全网最全的IDEA热部署方案,看完弄懂,再也不用加班

2023-11-10

概念

热部署就是正在运行状态的应用,修改了它的源码之后,在不重新启动的情况下能够自动把增量内容编译并部署到服务器上,使得修改立即生效。热部署为了解决的问题有两个:

1、在开发的时候,修改代码后不需要重启应用就能看到效果,大大提升开发效率;

2、生产上运行的程序,可以在不停止运行的情况下进行升级,不影响用户使用。

IDEA 开启热部署

本篇文章主要是介绍Idea这款开发工具的热部署,而用Idea的人大多数都是用来开发java程序,当前流行的java程序主要有两种,第一种是传统的Web应用,依赖Tomcat这种web容器运行;第二种是Spring boot程序, 内嵌了运行环境。

1、Tomcat热部署

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

b) 点击你要配置的tomcat,点击deployment,点击”+“

c) 然后选择你要部署的war包,热部署必须要选择带有exploded的war包

d) 再切换回Server,按照下图标注配置

配置完后点击ok即可启动你的tomcat,然后改一下jsp、java文件实验热部署配置是否成功。

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

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

2、Spring boot程序热部署

a) 在顶部找到程序运行操作栏, 点击Edit Configurations,点击要配置的程序,按照下图标注地方配置

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

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

如果是jsp, 在application.yml文件下加入配置

如果是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>

其他配置

如果你通过上面的步骤还没实现想要的热部署效果,可以继续做以下两个配置。

1、开启Java Compiler的自动build

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

  资源获取:

大家点赞、收藏、关注、评论啦 、查看

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

全网最全的IDEA热部署方案,看完弄懂,再也不用加班 的相关文章

  • 为什么 JavaFX API 不包含在 Java 8 J2SE 中? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有谁知道为什么 JavaFX 8 仍然不是即将推出的 Java 8 中的日常 J2SE API 显示所有 Java 组件的技术图清楚地将 Jav
  • 如何消除 Java BoxLayout 中的间距?

    I programmed following ListPanel 使用 JavaScriptBoxLayout public class ListPanel extends JPanel private ArrayList
  • Hibernate 4 字节码增强不适用于脏检查优化

    我正在使用 Hibernate 4 3 6 并且我使用了最新的Maven 字节码增强 http vladmihalcea com hibernate 4 bytecode enhancement 使所有实体提高自我肮脏意识 我添加了mave
  • 如何抑制 Cucumber/Junit 断言堆栈跟踪

    我有一个黄瓜场景 该步骤使用assertEquals 我的结果报告显示了对最终用户不友好的堆栈跟踪 我怎样才能抑制它 Scenario Add two numbers Given I have two inputs 3 and 2 When
  • Android CursorAdapter、ListView 和后台线程

    我一直在开发的这个应用程序有包含数兆字节数据的数据库可供筛选 许多活动只是列表视图 通过数据库中的各个级别的数据下降 直到到达 文档 即从数据库中提取并显示在手机上的 HTML 我遇到的问题是 其中一些活动需要能够通过捕获击键并重新运行带有
  • APNS(Apple 推送通知服务器)的反馈服务

    我们正在使用Java作为推送通知提供商APNS I我能够将消息发送到APNS但我不知道如何获得该消息的反馈 请帮忙 反馈服务具有类似于用于发送推送通知的接口的二进制接口 您可以通过以下方式访问生产反馈服务feedback push appl
  • Java HashMap 嵌套泛型与通配符

    我正在尝试创建包含自定义类的不同子类的哈希集的哈希映射值的哈希映射 如下所示 HashMap
  • Java:无安全管理器:RMI 类加载器已禁用

    您好 我有 RMI 应用程序 现在我尝试从客户端调用服务器上的一些方法 我有以下代码 public static void main final String args try Setting the security manager Sy
  • 我应该使用 JDBC getNString() 而不是 getString() 吗?

    我们正在构建一个由 Oracle 数据库支持的 Java 应用程序 我们使用 JDBC 驱动程序 访问该数据库ojdbc6 jar and orai18n jar 数据库模式主要使用以下方式存储文本列NVARCHAR2数据类型 The JD
  • 外部实体更改后索引不更新

    我目前正在开发一个项目 使用 JPA 2 1 保存数据并使用 hibernate search 4 5 0 final 搜索实体 映射类和索引后 搜索工作正常 但是 当我更改值时描述B 类从 someStr 到 anotherStr 数据库
  • 如何使用 Swipe 视图实现 Android TabLayout 设计支持库

    我将使用 android TabLayout 设计支持库 但我不知道如何使用滑动视图 这是我的代码 XML
  • 如何从 Java 中“double”类型的值中删除小数值

    我正在调用一个名为 calculateStampDuty 的方法 它将返回 财产需缴纳的印花税金额 百分比计算有效 很好 并返回正确的值 15000 0 但是 我想显示该值 前端用户只是 15000 所以只想删除小数点和任何前面的值 此后
  • 欧拉项目 45

    我还不是一名熟练的程序员 但我认为这是一个有趣的问题 我想我应该尝试一下 三角形 五边形 六边形 数字由以下生成 公式 三角形 T n n n 1 2 1 3 6 10 15 五边形 P n n 3n 1 2 1 5 12 22 35 六角
  • 生产者程序中的 kafka 网络处理器错误(ArrayIndexOutOfBoundsException:18)

    我有下面的 kafka Producer Api 程序 我对 kafka 本身是新手 下面的代码从 API 之一获取数据并将消息发送到 kafka 主题 package kafka Demo import java util Propert
  • 使用 equals 方法比较两个对象,Java

    我有一个对象数组 我想将它们与目标对象进行比较 我想返回与目标对象完全匹配的对象的数量 这是我的计数方法 public int countMatchingGhosts Ghost target int count 0 for int i 0
  • 线程上下文类加载器和普通类加载器的区别

    线程的上下文类加载器和普通类加载器有什么区别 也就是说 如果Thread currentThread getContextClassLoader and getClass getClassLoader 返回不同的类加载器对象 将使用哪一个
  • AES 密钥是随机的吗?

    AES 密钥可以通过此代码生成 KeyGenerator kgen KeyGenerator getInstance AES kgen init 128 but 如果我有一个 非常可靠 的生成随机数的方法 我可以这样使用它吗 SecureR
  • 检查 Java 字符串实例是否可能包含垃圾邮件数据的最简单方法

    我有一个迭代 String 实例的过程 每次迭代对 String 实例执行很少的操作 最后 String 实例被持久化 现在 我想为每次迭代添加一个检查 String 实例是否可能是垃圾邮件的检查 我只需验证 String 实例不是 成人材
  • while循环只执行一次

    我很难弄清楚为什么 while 循环实际上不会循环 它运行一次并停止 import java util public class mileskm public static void main String args Scanner inp
  • Swing:创建可拖动组件...?

    我在网上搜索了可拖动 Swing 组件的示例 但我发现示例不完整或不起作用 我需要的是一个摇摆组件那可以是dragged通过鼠标 在另一个组件内 被拖拽的时候 应该已经 改变它的位置 而不仅仅是 跳 到目的地 我很欣赏无需非标准 API 即

随机推荐

  • html+向ul追加li内容,肿么用js在ul标签下添加li标签,并要求li有id?

    用 ul append li id tb num class normaltab 新建类型 li 就可以实现 具体添加 参考方法如下 var dy div parent document getElementById xs 这个div在if
  • idea中使用vue.js的前期准备 保姆级教学

    idea的下载安装教程参考 1条消息 IDEA 下载安装教程 桑稚远方 的博客 CSDN博客https blog csdn net weixin 59367964 article details 127900057 安装完之后就可以开始我们
  • 流程图控件GoJS内置GraphObject类各指数介绍

    GoJS是一款功能强大 快速且轻量级的流程图控件 可帮助你在JavaScript 和HTML5 Canvas程序中创建流程图 且极大地简化您的JavaScript Canvas 程序 点击下载GoJS最新版 背景点击 功能 InputEve
  • 动态规划学习(一)

    动态规划算法与分治法类似 其基本思想也是将待求解问题分解成若干个子问题 但是经过分解得到的子问题往往不是相互独立的 在用分治法求解的时候 子问题被重复计算了多次 解决方法 保存已解决的子问题的答案 避免大量重复计算 动态规划与分治法区别 适
  • 前端学习:表格学习,附练习+源码

    文章目录 一 表格的主要作用 二 表格属性 三 总结 四 合并单元格方式 一 表格的主要作用 1 表格主要用于显示 展示数据 因为它可以让数据显示的非常的规整 可读性非常好 特别是后台展示数据的时候 能够熟练运用表格就显得很重要 一个清爽简
  • 微信公众号群发接口和原创校验

    一 说明 1 1限制 二 群发图文消息 三 群发图片 文本 四 群发时使用is to all 五 上传图文消息接口 5 1 上传图文消息内的图片获取URL 订阅号与服务号认证后均可用 5 2 上传图文消息素材 订阅号与服务号认证后均可用 六
  • C语言变长数组讲解

    C语言变长数组讲解 参考资料 1 https www cnblogs com Anker p 3744127 html 2 https www cnblogs com veis p 7073076 html 3 https blog csd
  • EXCEL解析导入,多线程批量插入大量数据

    EXCEL解析导入 批量插入大量数据 excel导入基本分为3个步骤 1 上传文件 2 解析文件 3 逻辑内容 首先查看是哪一步需要优化 一般需要在第3步 插入数据库的逻辑优化 如果数据量比较大的话 单条sql执行很慢 几条数据几次和数据库
  • Alibaba Java Code Guidelines

    Alibaba Java Code Guidelines这个代码规范插件 对于Java代码规范 业界有统一的标准 不少公司对此都有一定的要求 但是即便如此 庞大的Java使用者由于经验很水平的限制 未必有规范编码的意识 而且即便经验丰富的老
  • 提取python字符串括号中的内容

    一些数据按字符串保存 如str1 1 0 123 2 0 234 当我们需要将字符串中的数据提取出来进行计算时 涉及只提出括号中的内容 此时可采取用Python re正则表达式模块和split 函数完成 操作过程略复杂 有更简洁方法时再更新
  • 每日一题(C语言基础篇)3

    题目描述 求一个整数中2进制为1的个数 例如 8 00001000 有一个二进制为1的数 9999 270F 有8个2进制为1的数 代码实现 include
  • 树莓派4B串口配置

    树莓派环境 硬件 树莓派4B 系统 ubuntu22 04 串口信息 树莓派4B一共有6个串口 之前的版本只有2个串口 这6个串口中 有5个时硬件串口 还有个mini串口 这5个硬件串口在我们需要使用外设时 但是 默认情况下 5个默认串口只
  • Qt与VS的对比(1)

    对话框篇 QT与VS创建对话框的方式非常相似 都需要创建一个对话框类 在需要显示该对话框的地方包含对应的头文件 显示即可 区别 QT显示模态对话框使用函数QDialog exec VS显示模态对话框使用函数CDialog DoModal Q
  • JDK的下载与安装详细解释

    JDK的下载与安装 一 JDK下载 进入Oracle官网 https www oracle com index html 打开后我们通过选项卡找到Downloads 操作如下界面 接下来我们找到Deverloper Downloads中的J
  • Unity3D之简单的点击拾取

    新建一个Cube物体和一个脚本Cube 将Cube脚本挂到Cube物体上 代码如下 csharp view plain copy using UnityEngine using System Collections public class
  • Web Components 系列(八)—— 自定义组件的样式设置

    前言 通过前面的学习 对自定义组件的相关概念和知识点也有了一定了解 今天我们就来学习一下给自定义元素及其子元素设置样式的几种方法 直接给自定义标签添加样式 index html
  • 多module启动报错Could not resolve dependencies for project

    前几天用若依的前后端分离版本 项目能启动 打包发布时异常 提示找不到项目依赖 无法解析artifact Could not resolve dependencies for project The following artifacts c
  • [管理与领导-82]:IT基层管理者 - 核心技能 - 高效执行力 - 7- 高效执行的结果通过高效的过程保证

    目录 前言 一 执行前 对 1 1 确保做对事 do right thing 1 目标 行动的目标 2 方向 行动的方向 3 需求 行动是为了满足某种需求 4 指令 行到受谁的指令 1 2 确定做对事的方法 1 2 1 确认 do righ
  • 理解DOM事件流的三个阶段

    本文主要解决两个问题 什么是事件流 DOM事件流的三个阶段 起因 在学习前端的大半年来 对DOM事件了解甚少 一般也只是用用onclick来绑定个点击事件 在寒假深入学习JavaScript时 愈发觉得自己对DOM事件了解不够 遂打开我的
  • 全网最全的IDEA热部署方案,看完弄懂,再也不用加班

    概念 热部署就是正在运行状态的应用 修改了它的源码之后 在不重新启动的情况下能够自动把增量内容编译并部署到服务器上 使得修改立即生效 热部署为了解决的问题有两个 1 在开发的时候 修改代码后不需要重启应用就能看到效果 大大提升开发效率 2