V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
djzhao
V2EX  ›  程序员

IDEA 中 debug 项目时修改了 mapper.xml 如何优雅的更新?

  •  
  •   djzhao · May 11, 2020 · 3929 views
    This topic created in 2181 days ago, the information mentioned may be changed or developed.

    各位 Ver,IDEA 中 debug 时怎么使修改过的 mapper.xml 文件立即生效,有没有类似 recompile 当前类的这种操作。 另:update resources 并不会生效。

    17 replies    2020-05-12 18:25:43 +08:00
    x940727
        1
    x940727  
       May 11, 2020
    Ctrl+Shift+F9
    djzhao
        2
    djzhao  
    OP
       May 11, 2020
    @x940727 这是“Recompile”,对 xml 不生效,对类文件生效
    TtTtTtT
        3
    TtTtTtT  
       May 11, 2020
    挺复杂的,从原理上,既要 IDEA 能优雅的把 mapper.xml 更新到对应的位置,又要让解析配置文件的库支持动态加载。
    Java 是有 Instrumentation 机制的,其他的软件或者库有没有这个能力就要看看了。
    aragakiyuii
        4
    aragakiyuii  
       May 11, 2020 via Android
    我记得 jrebel 可以
    jorneyr
        5
    jorneyr  
       May 11, 2020
    JRebel 可以自动更新修改过的资源文件
    djzhao
        6
    djzhao  
    OP
       May 11, 2020 via Android
    @aragakiyuii 谢老铁,那得安装 jrebel,还是收费的 想看看有没有 idea 现成方案
    djzhao
        7
    djzhao  
    OP
       May 11, 2020 via Android
    @jorneyr 是的,不过不知 idea 能不能只手动更新某些文件
    gejun123456
        8
    gejun123456  
       May 11, 2020 via iPhone
    jrebel 或者 springboot 的自动重启
    djzhao
        9
    djzhao  
    OP
       May 11, 2020 via Android
    @TtTtTtT 谢老铁提供思路,看来没有直接更新的快捷方式
    djzhao
        10
    djzhao  
    OP
       May 11, 2020 via Android
    @gejun123456 想问的是手动更新,因为不是所有修改的文件都想它立即生效,项目太大又不想重新启动
    gejun123456
        11
    gejun123456  
       May 11, 2020
    @djzhao #10 写 testcase 吧,testcase 很快就能跑好 https://gejun123456.github.io/MyBatisCodeHelper-Pro/#/quicktestsql
    WispZhan
        12
    WispZhan  
       May 11, 2020
    你需要的是 TDD,而不是手动 debug 整个项目。
    djzhao
        13
    djzhao  
    OP
       May 12, 2020 via Android
    @WispZhan 改 bug 总得 debug 吧
    endy
        14
    endy  
       May 12, 2020
    我用的 plus 自带 xml 热加载.后来 plus 新版本屏蔽并删除了 热加载的代码,遂修改之,再次可以热加载。
    fumichael
        15
    fumichael  
       May 12, 2020
    为什么我设置了 update resources and classes 就可以了,难道我是有那个 devtools 的依赖?
    不过我现在都已经使用 jrebel 了
    djzhao
        16
    djzhao  
    OP
       May 12, 2020 via Android
    @endy 不理解,我现在用的版本没法更新
    djzhao
        17
    djzhao  
    OP
       May 12, 2020 via Android
    @fumichael 没用 devtools,而且是 ssm 的老项目
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   779 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 20:41 · PVG 04:41 · LAX 13:41 · JFK 16:41
    ♥ Do have faith in what you're doing.