[英]Why am I getting errors with git but not with hex deps in 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一切正常工作。
此外,当我的应用程序停泊时,我发现我收到了一个错误
没有找到发布
当使用任何git deps时,但当我将所有切换为十六进制时,它工作正常。 rebar3的git死了吗?
默认情况下, rabbit_common
在GitHub的仓库只支持erlang.mk
作为构建工具,并且不包含数据rebar3将需要(在rebar.config)成功地建立它。
Rebar3能够进入并尝试编译一个看起来像是尊重OTP的应用程序,但在这种情况下,特别是因为缺少deps,rebar3将无法知道某些组件没有到位。
但是,就像Mix和Rebar3一样,erlang.mk可以发布到十六进制。 在这样做时,一些额外的元数据被添加到lib,包括依赖项。 其他信息仍未添加(例如编译器选项)。 总的来说,由于库是十六进制的,并且显然格式良好,因此rebar3能够将其与依赖关系一起构建,但只能在十六进制上构建一次。
Rebar3对git的支持预计将在可预见的未来继续发展。 当前版本候选版本还增加了对许多混合依赖项的支持(以及https://github.com/tsloughter/rebar_mix作为插件),但我们目前没有开放计划本机支持erlang.mk项目。 在这个时间点,Hex和一些运气是你最好的选择。
rebar3的git死了吗?
不,它仍然有效,我希望它继续得到支持。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.