关于mirai自带库与引用第三方库的问题
-
目前,我只知道
mirai
自带了okhttp3
这个库可供插件使用。
通常,我们写的插件会调用第三方的HTTP API
,okhttp3
确实解决了调用的问题,但是返回的json
结果,或者是解析DOM
等,还需要依赖第三方库。
问题在于,我每写一个插件都需要引用第三方库打包到.jar
中,将造成文件的体积膨胀。如果我将单个插件做的功能非常齐全,是一个完整的插件,那体积大点也没什么。
可如果我希望每个插件只做很少的事情,以多个插件组成一个生态,那反复重叠相同的东西,就不那么优雅了。我想知道,如何让多个插件共用相同的库,并且每个插件允许独立安装。
来自jvm新手的疑问😊
-
mirai还自带了kotlin serialization可以用来解析json
-
@peratx 这样吗,能不能指个路,看看怎么用的。
-
@jie65535 https://github.com/Kotlin/kotlinx.serialization
您需要compileOnly这个包,因为这个包可能被mirai隐藏了,打包的时候不需要打包进去
-
@peratx 好的,非常感谢你 😀
-
如果你的插件需要大量重复使用某个 mirai 不带的依赖,你可以专门写一个插件,onEnable 什么也不做,就只 shadow 需要的依赖
-
@karlatemp 如果我其他插件要求依赖这个公共插件才能运行,在
MiraiConsole
中应该如何表示?目前好像没看到插件依赖管理系统?正如MC装mod时有的mod会依赖与某些前置mod一般,在加载时会提示缺少某个依赖。
-
@jie65535
修改 JvmPluginDescription 的 dependencies -
@cssxsh 了解,谢谢!😉
-
@jie65535
可以使用PluginDescrption中的dependsOn(这个我还没研究过)
或者您可以使用Mirai Console Loader的CorePlugin功能,作为Core包加载,这样这个包中的库会被所有插件共享 -
@peratx 不使用其它
json parser
效果立竿见影,体积当场缩小十倍。🤣