MiraiForum

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

    关于mirai自带库与引用第三方库的问题

    开发交流
    4
    11
    812
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • jie65535
      jie65535 最后由 编辑

      目前,我只知道mirai自带了okhttp3这个库可供插件使用。
      通常,我们写的插件会调用第三方的HTTP API,okhttp3确实解决了调用的问题,但是返回的json结果,或者是解析DOM等,还需要依赖第三方库。
      问题在于,我每写一个插件都需要引用第三方库打包到.jar中,将造成文件的体积膨胀。

      如果我将单个插件做的功能非常齐全,是一个完整的插件,那体积大点也没什么。
      可如果我希望每个插件只做很少的事情,以多个插件组成一个生态,那反复重叠相同的东西,就不那么优雅了。

      我想知道,如何让多个插件共用相同的库,并且每个插件允许独立安装。

      来自jvm新手的疑问😊

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

        mirai还自带了kotlin serialization可以用来解析json

        jie65535 1 条回复 最后回复 回复 引用 0
        • jie65535
          jie65535 @PeratX 最后由 编辑

          @peratx 这样吗,能不能指个路,看看怎么用的。

          P 1 条回复 最后回复 回复 引用 0
          • P
            PeratX @jie65535 最后由 PeratX 编辑

            @jie65535 https://github.com/Kotlin/kotlinx.serialization

            您需要compileOnly这个包,因为这个包可能被mirai隐藏了,打包的时候不需要打包进去

            jie65535 2 条回复 最后回复 回复 引用 0
            • jie65535
              jie65535 @PeratX 最后由 编辑

              @peratx 好的,非常感谢你 😀

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

                如果你的插件需要大量重复使用某个 mirai 不带的依赖,你可以专门写一个插件,onEnable 什么也不做,就只 shadow 需要的依赖

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

                  @karlatemp 如果我其他插件要求依赖这个公共插件才能运行,在MiraiConsole中应该如何表示?目前好像没看到插件依赖管理系统?

                  正如MC装mod时有的mod会依赖与某些前置mod一般,在加载时会提示缺少某个依赖。

                  cssxsh P 2 条回复 最后回复 回复 引用 0
                  • cssxsh
                    cssxsh @jie65535 最后由 编辑

                    @jie65535
                    修改 JvmPluginDescription 的 dependencies

                    jie65535 1 条回复 最后回复 回复 引用 0
                    • jie65535
                      jie65535 @cssxsh 最后由 编辑

                      @cssxsh 了解,谢谢!😉

                      1 条回复 最后回复 回复 引用 0
                      • P
                        PeratX @jie65535 最后由 编辑

                        @jie65535
                        可以使用PluginDescrption中的dependsOn(这个我还没研究过)
                        或者您可以使用Mirai Console Loader的CorePlugin功能,作为Core包加载,这样这个包中的库会被所有插件共享

                        1 条回复 最后回复 回复 引用 0
                        • jie65535
                          jie65535 @PeratX 最后由 编辑

                          @peratx 不使用其它json parser效果立竿见影,体积当场缩小十倍。🤣

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