[插件开发] 如何将依赖的 eredis_pool 打包到安装包里

环境

  • EMQX 版本:5.0.26
  • 操作系统版本:Ubuntu20.04

重现此问题的步骤

开发插件添加eredis_pool库出错


rebar.config配置

.app.src文件配置:

请问配置是否正确,为何找不到eredis_pool.app文件,生成eredis_pool.app在./_bulid/default/lib下

预期行为

实际行为

最终打包后的插件里面包含哪些内容方便看下么?感觉是没有把 erdis_pool 给带进去

最终打包的插件里面只有一个插件文件夹和map-set文件夹,没有eredis_pool,请问如何把eredis-pool打包进去

试过把eredis_pool下载好手动放入打包文件夹中,不好使。应该怎么加入到最终的打包文件中,谢谢

请问如何把eredis_pook打包带进去

那需要在rebar.conf 里面的 relx 部分加上你需要打包的依赖才行,现在只有 [emqx_plugin_template, map_sets]
在把你需要的加到这个列表里,再试试呢

已经打包加入插件中,仍是无法正确加载eredis_pool模块

看起来是代码的问题了,DEBUG 下吧

把使用eredis_pool库相关的代码删除掉,只是在rebar.config中添加依赖


就会出现错误

如果在.app.src文件中加入eredis_pool,则会出现

,猜测会不会是由于eredis_pool库的依赖中需要下载eredis,poolboy,与插件中又已加载的eredis,poolboy产生冲突导致的

本地测试eredis_pool可以加载


,试图将从本地获取eredis_pool依赖,

路径看起来没错,为何获取不到

方便开源一个 Demo 么?我来帮你debug下看看好l…

非常感谢,git地址为https://github.com/hlc007/demo.git,只是在插件模板的rebar.config和emqx-plugin-template.app.src文件中添加了eredis_pool依赖,其他未做改动。

修复提交到了: https://github.com/hlc007/demo/pull/1

现在插件还没有配置和环境变量等周边系统,所以用的时候要多 DEBUG 找原因才行。如果 Erlang 不熟悉的话,就不建议直接上手写了,比较痛苦

非常感谢您的帮助和建议

客气啦~

@1137229312 遇到个类似的问题,能加微信沟通吗?微信号:wangkuiwu0652。万分感谢!