EMQX插件开发的依赖问题

环境

  • EMQX 版本:5.3.2
  • 操作系统版本:ubuntu22.04

重现此问题的步骤

  1. 编译源码、编译开发的插件为tar包
  2. dashboard上传tar包并运行
  3. 报错:找不到brod.app,这个文件是成功被编译的

以下是配置和文件位置:

插件rebar.config

emqx rebar.config

插件编译后tar包和lib依赖位置


报错

看起来是因为 brod 这个依赖没有包含到 release 里去, 你把它放到这里来:

哦 这应该是个问题,因为上面的办法需要编译 emqx,但插件应该需要即插即用的。我去反馈一下。

在这个地方加上brod然后重新编译吗

谢谢,麻烦尽快反馈

是的

谢谢,现在插件能成功运行了,但是有了个新的报错 :joy:,排查到原因是使用的emqx_json:safe_encode函数应该是在4.x版本的,在5.3版本中有对应的相同功能函数吗

emqx_utils_json:safe_encode

你把 emqx 代码拉下来,有问题在里面全局搜就好了。

ok,谢啦

如果是模块打包的话,有依赖的包,也需要手动加到 rel 这里。
试试在 rebar.config 中这里加入你的依赖包。这样也可以不用改 emqx 代码。
https://github.com/emqx/emqx-plugin-template/blob/master/rebar_template.config#L20-L26