idea 跑项目 build 一下修改的 Java 代码是如何生效的?

2024-04-29 15:56:58 +08:00
waterlaw  waterlaw

有项目 a ,使用 springboot 构建,分为 b,c 两个子模块,子模块各有一个 main 方法启动类,c 依赖于 b,使用 maven 管理。

问题来了,改动 b 子模块下的 Java 方法,build 一下,c 模块就能感知 b 模块的变化,请问这是如何做到的?我的理解是 b,c 模块进行 mvn clean install 后,c 模块才能读取到 target 目录下的 b 的 jar 包,难道 idea 使用了某种方法动态加载了修改的类?

1592 次点击
所在节点   程序员  程序员
3 条回复
kneo
kneo
2024-04-30 09:00:26 +08:00
依赖的是源代码,不是 target 下的 jar 。你源代码不是改了吗?
LiaoMatt
LiaoMatt
2024-04-30 09:19:35 +08:00
应该是用 java.lang.instrument.Instrumentation 或者 Java TI, 前者的可能性更大一点, Idea 热更新好像不能修改类成员信息, 不然会更新失败
WashFreshFresh
WashFreshFresh
2024-04-30 10:19:53 +08:00
build 就是有新的 jar 生成吧,compile 才是只生成 class

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1036783

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX