MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    使用热部署技术加速Mirai相关开发

    技术交流板块
    6
    7
    946
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • RainChan
      RainChan 摸鱼 最后由 编辑

      在开发mirai相关程序(console插件或者是基于mirai的应用)的时候,每修改一次代码都需要重新启动mirai来测试结果;然而对于有大量群或好友的账户来说,每一次登录都需要消耗大量时间。热部署技术可以在不重启jvm的情况下动态替换代码,从而节约测试时间。

      jvm本身支持热部署技术,但是仅仅支持方法内代码替换。下面介绍的方法可以动态替换更多类型的代码。

      本文介绍Dcevm这个修改版JVM,该修改版能动态修改类的任意元素,包括成员、方法、注解、继承等而无需重启JVM

      安装

      下载对应平台并解压即可
      https://github.com/TravaOpenJDK/trava-jdk-11-dcevm/releases

      配置

      对于idea来说,只需要使用该jvm运行你的项目即可。

      1. 在Project Structure中找到Project SDK并添加dcevm的路径
      2. 在运行配置中的JRE中选择你刚刚添加的即可

      使用

      使用Debug模式启动你的项目。启动后修改任意代码点击Build锤子按钮,或是按下Ctrl+F9。看到下面的提示则表示重载成功,此时修改的代码就会生效。

      f11d2230-763c-40f8-8089-1d2ab494bb9a-image.png

      1 条回复 最后回复 回复 引用 1
      • S
        SakiZero 最后由 编辑

        cy

        1 条回复 最后回复 回复 引用 0
        • StageGuard
          StageGuard 最后由 编辑

          试试·

          1 条回复 最后回复 回复 引用 0
          • Orisland
            Orisland 摸鱼 最后由 编辑

            插眼

            1 条回复 最后回复 回复 引用 0
            • Karlatemp
              Karlatemp 最后由 Karlatemp 编辑

              hso

              1 条回复 最后回复 回复 引用 0
              • T
                Teeth 最后由 Teeth 编辑

                此回复已被删除!
                RainChan 1 条回复 最后回复 回复 引用 0
                • RainChan
                  RainChan 摸鱼 @Teeth 最后由 编辑

                  @teeth 但是无法重载某些位置的更改。这就是需要使用dcevm的原因

                  1 条回复 最后回复 回复 引用 0
                  • 1 / 1
                  • First post
                    Last post
                  Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact