我试图弄清楚如何正确地设置一个ejabberd项目,以允许轻松地编译自定义梁文件-到目前为止,我们一直在使用一个现有的项目,这是麻烦的管理,并使用erlide作为IDE。
我希望以一种可以使用更有用的IDE(如vscode)的方式设置项目,并以某种方式简化beam文件的编译和复制以及服务器上的模块更新。
用Elixir编写代码也很好--我只是希望项目以一种开发友好的方式设置。
抱歉,如果这个问题太宽泛了,我不知道该怎么表达。如果你觉得我在目前的流程中遗漏了什么,请告诉我,因为我基本上继承了这个项目。如果有任何需要澄清的地方,也请告诉我。
- 谢谢-谢谢
1条答案
按热度按时间b5buobof1#
轻松编译自定义梁文件
以某种方式简化了波束文件的编译和复制以及更新服务器上的模块。
如果任务是关于编译和加载附加模块,则正在运行的ejabberd节点可以在运行时编译、加载和启动附加模块,请参见https://docs.ejabberd.im/developer/extending-ejabberd/modules/#ejabberd-contrib
通常这些模块来自https://github.com/processone/ejabberd-contrib,但你可以让ejabberd从其他git仓库下载其他模块,或者你可以复制模块的源代码并让ejabberd安装它们。这些模块可以用Erlang或Elixir编写。完整示例:https://docs.ejabberd.im/developer/extending-ejabberd/elixir/#elixir-module-in-ejabberd-contrib
基本上:
1.你在你的开发机器上写模块,测试它...
1.如果对源代码满意,请将mod_whatever.erl复制到生产计算机$HOME/.ejabberd-modules/sources/mod_whatever,如前面提到的示例中所述
1.运行
ejabberdctl module_install mod_whatever
在第2步中,您可以拥有一个只用于您的模块的git仓库,而不是自己复制源代码,告诉ejabberd模块的git URL,类似于https://github.com/processone/ejabberd-contrib/tree/master/extra
顺便说一句,对于步骤3,从ejabberd 22.10开始,ejabberd webadmin中有一个页面可以安装和卸载这些模块(当然,复制文件需要手动管理)。
我希望以一种可以使用更有用的IDE(如vscode)的方式设置项目
真巧,这些天我在研究VSCode的变体(VSCode,VSCodium,Coder的代码服务器和Github Codespaces),以及如何使用它们开发ejabberd。这对我前面提到的第一步(编写模块并测试它)很有用。如果你对ejabberd + VSCode感兴趣,告诉我。