Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我在rebar3中使用git而不是hex deps时出错_Git_Erlang_Hex_Rebar3 - Fatal编程技术网

为什么我在rebar3中使用git而不是hex deps时出错

为什么我在rebar3中使用git而不是hex deps时出错,git,erlang,hex,rebar3,Git,Erlang,Hex,Rebar3,在我的Erlang项目中使用依赖项时,我多次遇到这个问题,例如 {rabbit_common,“3.7.8”} vs {rabbit_common,“.*”,{git,“https://github.com/rabbitmq/rabbitmq-common.git“,{tag,“v3.7.8”}} 使用git时,我必须进入lib文件夹中的每个依赖项应用程序,并在它上运行make,而使用hex时一切都正常 另外,当docker升级我的应用程序时,我发现了一个错误 没有找到释放 当使用任何git d

在我的Erlang项目中使用依赖项时,我多次遇到这个问题,例如

{rabbit_common,“3.7.8”}

vs

{rabbit_common,“.*”,{git,“https://github.com/rabbitmq/rabbitmq-common.git“,{tag,“v3.7.8”}}

使用git时,我必须进入lib文件夹中的每个依赖项应用程序,并在它上运行make,而使用hex时一切都正常

另外,当docker升级我的应用程序时,我发现了一个错误

没有找到释放

当使用任何git deps时,但当我将所有的都切换到hex时,它工作得很好。git对rebar3来说死了吗

吉特死定了吗


不。它仍然可以工作,我希望它能继续得到支持。

默认情况下,github存储库中的
rabbit\u common
只支持
erlang.mk
作为构建工具,并且不包含rebar3成功构建它所需的数据(在rebar.config中)

Rebar3能够进入并尝试编译一个看起来尊重OTP的应用程序,但在这种情况下,特别是因为缺少DEP,Rebar3将无法知道某些组件没有到位

但是,与Mix和Rebar3非常相似,erlang.mk可以发布到十六进制。这样,一些额外的元数据被添加到库中,包括依赖项。其他信息仍然没有添加(例如编译器选项).但总体而言,由于库是在十六进制上的,而且显然格式良好,因此rebar3能够很好地构建它及其依赖项,但只能在十六进制上构建一次


在可预见的未来,对git的Rebar3支持有望继续。当前的候选版本还增加了对许多混合依赖项的支持(以及作为插件),但我们目前还没有开放的计划来支持erlang.mk项目。Hex和一些运气是目前最好的选择。

您对其他哪些依赖项有问题?rabbitmq common似乎没有rebar.config文件。因此它无法直接编译。我想当dockerizin时,您是否从rebar3获得了任何其他输出g你的应用程序?当你使用git deps时,它能够获取你所有的deps吗?@Stratus3D我不记得我拥有的所有deps,但我相信它是erlcloud、amqp_客户端和其他一些。查找与获取deps相关的任何错误。获取git deps会失败而Hex deps不会失败的原因有很多。谢谢你,这很有见地!我猜wil从现在起,我将使用十六进制作为默认值。