rebar和rebar3有什么区别?或者erlang.mk是什么?

16

我对Erlang编程语言非常陌生。Erlang中是否有标准的构建工具?

我已经通过谷歌搜索找到了这些,但不确定应该使用哪一个。我不知道它用于什么场合?

1个回答

14
  • Rebar2: 它是大多数Erlang项目在使用的第一个可用和事实上的构建工具。它使用Erlang脚本来获取依赖项、编译、测试和发布项目。然而,它不是现代化的构建工具,在开发阶段编译速度较慢、在大型项目中使用困难,并且对新手来说有点难以理解。

  • Rebar3: 它是rebar2的继任者,试图改进其机制并提供与现代构建工具兼容的新功能。此外,它更易于新手使用。

  • Erlang.mk: 它是一个大型Makefile。由于Makefile快速并且默认在每个Unix系统中都可用,因此您可以从这些功能中受益,用于Erlang应用程序构建工具。它拥有最知名的Erlang项目和其他标准功能(如Rebar)的软件包索引。此外,在开发阶段比Rebar2更快(初步结果表明,rebar3比Erlang.mk显着更快)


我自己使用Rebar,这个可能是重复问题有两个答案也推荐使用Rebar。但这是一种品味的问题,我建议考虑两种不同的方法,并选择更适合您目的的方法。


1
Rebar的一个优点是它符合OTP标准(我并不是说Erlang.mk不符合,我只是不使用它!),因此使用它可以让你习惯OTP文件组织方式(易于共享应用程序或查看现有应用程序),并且所有工具都已经准备好使用(测试、监控等)。 - Pascal
3
在Erlang IRC频道中发布了一些关于rebar2、rebar3和erlang.mk构建时间的数字。rebar2是迄今为止最慢的。但是,rebar3在第一次构建时比Erlang.mk快得多,甚至在第二次构建时也更快,因为它缓存了许多make需要重新收集的信息。 - Peer Stritzinger
3
rebar3 具有部分编译功能,因此在开发过程中非常快速,因为它不会重新编译整个项目。此外,rebar3 还具有插件,可以自动编译和加载磁盘上更改的文件,从而带来卓越的开发体验。我使用过 rebar2、rebar3 和 mix(用于 Elixir),我发现 rebar3 可以节省大量时间,并且完全符合 OTP 规范。 - Vans S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接