全网最全的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热部署方案,看完弄懂,再也不用加班 的相关文章

  • 从 java 程序中编译 .java 文件?

    我找到了这段代码 JavaCompiler compiler ToolProvider getSystemJavaCompiler if compiler run null null null fileName 0 System err p
  • java中旋转矩形对象

    是否可以旋转Rectangle物体绕其轴有一定程度的旋转吗 是不是那么简单Rectangle rect new Rectangle x y w h r 如果无法旋转对象 我可以通过什么方式获得类似的结果 Edit 为了清楚起见 这是我的困境
  • 找不到参数的方法 dependencyResolutionManagement()

    我正在尝试使用老师给我的一个项目 但它显示了一个错误 Settings file Users admin AndroidStudioProjects HTTPNetworking settings gradle line 1 A probl
  • Spring - Path 的工厂方法

    我正在尝试生成一个代表的 beanjava nio file Path使用静态方法Paths get String path 我当前的 Spring 设置如下
  • Spring boot JPA不使用findById返回现有结果

    我使用 Oracle 数据库和一些 JPA 查询创建了一个非常小且简单的 Spring Boot 应用程序 这是不返回数据的代码片段 该数据实际上存在于数据库中 letterRecipientNonOas letterRecipientNo
  • 无法在 Eclipse IDE 中使用 java 建立与 SQL Server 2008 的数据库连接

    我正在尝试在 Eclipse IDE 中使用 Java 代码连接到 HP Operations Manager 数据库 我能够通过 Microsoft SQL Server Management Studio 2008 成功连接 但通过代码
  • jdbctemplate计数queryForInt并传递多个参数

    如何传入多个参数jdbcTemplate queryForInt得到计数 我试过这个 Integer count this jdbcTemplate queryForInt select count name from table name
  • Java:用于确定等效性的外部类?

    Java 有一个Comparator
  • GSON 中的自定义反序列化?

    我需要创建一个自定义反序列化器 以便我可以正确反序列化我以此格式收到的日期 2011 10 19T23 30 00 04 00 我的 Date 对象是许多字段之一 包含我正在反序列化的对象的许多嵌套类之一 除了日期之外 一切正常 我的班级是
  • “实际或正式的参数列表长度不同”

    当我尝试将某些内容放入 括号中时Friends f new Friends friendsName friendsAge 它出现错误 Friends 类中的构造函数 Friends 不能应用于给定类型 必需 无参数 发现 字符串 整数 原因
  • 如何在 Netbeans 中调试 Java Web 应用程序?

    我曾多次在 Netbeans 中调试 Java 桌面应用程序 但从未调试过 Java Web 应用程序 我尝试以同样的方式调试它 但它不起作用 我制作了一个index html网页 该页面上有一个 表格 用户提交表单后 请求将发送至 ser
  • Java Swing:从 JOptionPane 获取文本值

    我想创建一个用于 POS 系统的新窗口 用户输入的是客户拥有的金额 并且窗口必须显示兑换金额 我是新来的JOptionPane功能 我一直在使用JAVAFX并且它是不同的 这是我的代码 public static void main Str
  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination

随机推荐

  • 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