关于 springboot 和非 springboot 跑在外部 tomcat 的 web 工程的 idea 里的断点问题.

2021-12-17 15:57:33 +08:00
 chengyiqun

我这里有几个 java 的 web 工程. maven 的

这个工程是个老工程, 没用 springboot, 自然也没用 dev-tools 热部署 debug 时跑在外部的 tomcat 上.

这样勾上后, 启动调试会打开一个 chrome 浏览器, idea 里 js 文件里打的断点能进去.

但是如果我刷新了, 或者浏览器关了, 这个断点就不生效, 必须重启 tomcat 等待 idea 自动唤醒浏览器, 不然断点没用. 就很麻烦.

如果我这样, 直接对着 html 文件右键单击, 选择 debug, 也会打开同样的网址的 javascript 的 debug 模式 但是同样的断点是没用的.

还有个问题就是按 ctrl+F9 只会热部署 class, 不会部署静态文件. 必须手动重启 tomcat 或者选择重新部署才行. 浏览器缓存也要刷新(或者开着 F12,勾上禁用和缓存的设置) 我这边还有一个项目是跑在 springboot 上的, 加了 dev-tools, 发现 ctrl+F9 编译模块后, 静态文件也重新加载了. 就很方便. 在非 springboot 工程上怎么能达到类似的效果?

1182 次点击
所在节点    程序员
4 条回复
tedzhou1221
2021-12-17 17:57:32 +08:00
把图 2 中的 on 'Update' action 和 On frame deactivation 两个下拉框都选择为 update class and resources
tedzhou1221
2021-12-17 17:59:55 +08:00
还有就是,如果用 dev-tools ,还不如用 Jrebel 。如果你有特殊的自定义热加载的东西,Jrebel 有提供自定义接口给你去实现(由于我能力不够,所以没有实现)
tedzhou1221
2021-12-17 18:01:04 +08:00
如果使用的是 Mybatis 框架,可以去找找 mybatis-plus 的源码,他们有实现热更新 Mapper 的 xml 功能。
chengyiqun
2021-12-18 13:22:27 +08:00
@tedzhou1221 ![image.png]( https://s2.loli.net/2021/12/18/oJtv8CYrHyaTPlI.png)
只有 update class, 没有 update class and resources, 我不知道为什么.
Jrebel 我也用过, mybatis-plus 用不到, 我主要不是为了热部署 class 和 xml, 而是 webapp 目录里的静态文件.

最大的问题就是在 idea 里点了断点, 调试是不生效的.

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

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

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

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

© 2021 V2EX