首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java热重新部署,无需捆绑开发

Java热重新部署,无需捆绑开发
EN

Stack Overflow用户
提问于 2018-01-20 07:03:36
回答 2查看 51关注 0票数 0

我有一个有多个模块的项目:

代码语言:javascript
复制
Parent
\- Main
\- ServiceA
\- ServiceB
...

在每个更改上执行maven install && maven exec:java所花费的时间正在使开发……很痛苦。被angular热部署搞坏了,我能说什么呢:)

有没有一种Java开发工作流-使用IDE、命令行构建工具或任何其他工具-允许热代码重新部署多段代码,而不需要付出捆绑的沉重代价?

Idk,也许我正在寻找OSGi的轻量级替代品(在安装和绑定时间方面都是如此)。由于IDE会自动重新编译代码,所以我想应该使用文件监视器加上类加载器。即使是完全重新启动JVM也可能是可以接受的(当然比maven的2分钟构建要好)。

我搜索了很多,但我遇到的所有解决方案都是重量级的。

EN

回答 2

Stack Overflow用户

发布于 2018-01-20 07:25:14

它依赖于服务器和框架。您可以尝试这里描述的解决方案:https://zeroturnaround.com/rebellabs/rjc301/,但我认为最好的解决方案是JRebel -不幸的是,它不是免费的工具

票数 1
EN

Stack Overflow用户

发布于 2018-01-20 07:22:01

据我所知,热交换并没有一个真正简单的答案。JVM重启似乎并不是真正的解决方案,因为这将需要类加载器重新加载类路径中的所有内容(远远超出了项目的范围,如果您为其他jars定义了额外的自定义类路径位置,情况可能会比正常情况更糟)。

有一个名为DCEVM的工具(我从未使用过),它作为JVM的补丁,允许在运行时重复重新加载类。

我相信您的选择是使用DCEVM或类似的(如果存在类似的)修补JVM,使用jdb (或其抽象,如IDE所做的)从命令行调试器工具重新加载类,或者编写一个带有钩子的辅助类加载器,您作为开发人员/用户可以在执行期间访问该钩子,以便让它知道何时转储其定义并获取新的定义。最后一个选项为您提供了最大的灵活性,但这不是一项轻松的工程任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48350790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档