1-Rebar3 从一个例子入门
1.1 简介
Rebar3 是 Erlang 社区中的标准构建工具。它本质上集成了 Erlang 附带的许多其他工具以及一些开源工具,并使它们都在统一的项目结构下工作。
1.2 安装
Rebar3 脚本安装,这个可以直接参考官方文档http://rebar3.org/docs/getting-started/
不过我推荐的是源码安装
执行如下命令:
$ git clone https://github.com/erlang/rebar3.git
$ cd rebar3
$ ./bootstrap
或者
$ git clone git@github.com:erlang/rebar3.git
$ cd rebar3
$ ./bootstrap
这会将rebar3escript 编译到目录的顶层rebar3,然后您可以全局安装:
./rebar3 local install
1.3 创建新项目
Rebar3 提供的模板可以确保您的 Erlang 项目适合常规的 OTP 结构:
使用 rebar3 项目组织代码有两种主要方式:
作为单个应用程序,
作为一个综合项目。
单个应用程序项目 在目录的根目录中包含一个单独的顶级应用程序,其 Erlang 源模块直接位于src/目录中。这种格式适用于要在 GitHub 上发布的库或以 hex 格式发布的库,目的是让它们可与世界共享,但也可以与Releases一起使用,它允许发布一个直接启动应用程序的 Erlang 运行时系统。
Umbrella 项目 的定义特征是它们可以包含多个顶级 Erlang/OTP 应用程序,通常位于顶级apps/或lib/目录中。这些应用程序中的每一个都可能包含自己的 rebar.config 文件。此格式仅适用于具有一个或多个顶级应用程序的版本。
Rebar3 带有用于创建任一类型项目的模板,可通过命令调用。该template值可以是以下任何一种:
rebar3 new <template> <project-name>
- app:具有监督树的有状态 OTP 应用程序,作为单个应用程序项目
- lib:一个库 OTP 应用程序(没有监督树),用于将各种模块组合在一起,作为单个应用程序项目
- release: 准备发布的项目
- escript:一种特殊形式的单一应用程序项目,可以构建为可运行的脚本
- plugin: rebar3 插件的结构。
例如:$ rebar3 new app myapp ===> Writing myapp/src/myapp_app.erl ===> Writing myapp/src/myapp_sup.erl ===> Writing myapp/src/myapp.app.src ===> Writing myapp/rebar.config ===> Writing myapp/.gitignore ===> Writing myapp/LICENSE ===> Writing myapp/README.md
1.4 项目类型
项目类型 | 推荐模板 | 注释 |
---|---|---|
一个简短的脚本或工具 | escript | 你分发给的用户需要安装 Erlang。C 中的依赖关系既不是简单包含也不是重新分配 |
一个完整的、独立的、可执行的统 | release or umbrella | 这是 Erlang 系统推荐的生产部署。有关版本的更多详细信息, |
在其他系统中使用的库 | lib or app | 用于lib包含模块的无状态库,以及app带有监督树的有状态库 |
多个库的集合 | umbrella | 这是使用多个顶级应用程序时支持的一种项目形式。这些项目通常不能用作依赖项。对于可用作依赖项的项目,请参阅如何声明git_subdir依赖项 |
Erlang10, Rebar33