1
Goooogle 2020-12-24 11:38:54 +08:00
Intellij 有个 JRebel 插件,基本符合你的需求
|
2
Oktfolio 2020-12-24 11:41:16 +08:00
spring-boot-devtools
|
3
tinyuu 2020-12-24 11:41:28 +08:00
|
4
tydl 2020-12-24 11:45:58 +08:00
|
5
asanelder OP |
6
tydl 2020-12-24 12:02:18 +08:00
使用插件就一步,编辑代码,ctrl+s 。
|
7
oneisall8955 2020-12-24 12:16:34 +08:00 via Android
你甚至不需要任何插件,只需要 Ctrl +Alt +F9
|
8
lff0305 2020-12-24 16:59:08 +08:00
#5 这种 Jdk 自带的 Hot-Reloading 是有限制的,只能 reload 方法体的修改,不能添加删除方法参数,修改参数类型返回类型,不能添加删除 property; 而且在一个 app 里面有时候光 reload 这个 class 是不够的,还要 reload 这个 class 的依赖,调用 @PostConstruct 等等等。所以 Jdk 自己的 Reloading 只能处理很少一部分情况
要解决这个问题还是需要 JRebel(要钱)或者 DCEVM(开源),他们补充了 Hot-Reloading,能够在修改了方法参数等等的时候 Reload,同时带了插件,能够计算 Reload 这个 class 之后还要做哪些活 当然有些时候还是有问题,就只能重启 不过现在 Java 大部分都是 microservice 那一套,启动没几秒钟,不像十年前全是启动好几分钟的重型应用,对 reloading 的需求没有那么强 |
9
asanelder OP @lff0305 #8 感谢铁子细心回复。
今天俺试了一下 Jdk 的 hot-reloading, 确实功能有限。JRebel 也要钱,而且感觉不太明白原理,所以也不太想用。 现在还是使用 jenkins 来自动部署了,虽然有些麻烦,忍了。 spring-devtool 不知为啥,修改源码后要过十几秒才自动重启,感觉也不方便 |
10
AllanAG 2020-12-24 17:30:55 +08:00
JRebel 插件加上设置 idea 失去窗口焦点自动更新类和资源,写完代码再点击浏览器,源码基本就重新加载好了。关于 JRebel,使用它的启动按钮,它会监听 target 文件夹,文件发生变化就会自动重载修改的代码,现在除了修改配置文件,基本不需要重启项目
|
12
Kasumi20 2020-12-24 17:43:56 +08:00
对啊,每次重启好麻烦
https://github.com/develon2015/node-dev-server 这是我基于 webpack 做的 Node 开发工具,依赖文件被修改就会自动重启,很好用,还支持 electron-main |
13
guxingke 2020-12-24 17:46:28 +08:00
有些框架是可以自动热更(也可能是自动重启)的, 比如 play , helidon
不过你用的是 spring , 那只能推荐 jrebel 了。。。 |
16
AoEiuV020 2020-12-24 18:50:20 +08:00
|
18
Amayadream 2020-12-24 23:44:10 +08:00
@AoEiuV020 #16 我也经常这么干,但是确实是适用场景太少了。
|
20
NoUltimate 2020-12-25 09:29:38 +08:00
可以用 jrebel,github 搜一下有激活服务器,自己本地搭建一个然后点击 work offline 就好了
|
21
tinyuu 2020-12-25 09:36:05 +08:00
推荐 hotswapagent 开源免费啊。
|