1

我目前有一个基于 rebar3 的 erlang 应用程序,它由一个 erlang 后端和一个 javascript 前端组成。为了结合前端和后端构建系统,我使用了一个 makefile。我的 rebar.config 看起来像这样:

钢筋配置

...
{relx, [{release, {pgserver_dev, "0.1.0"},[pgserver]}
       ]},
       {dev_mode, true},
       {include_erts, false},
       {extended_start_script, true}
]}.

生成文件

...
release:
    @echo "creating release"
    rebar3 release
    ln -sf _build/$(PROFILE)/rel/$(APP)_dev/bin/$(APP)_dev /.run-$(APP)-$(PROFILE)

我想在rebar.config文件中使用环境变量来控制参数,例如版本——{pgserver_dev, "0.1.0"}在创建版本时。如果我指定一个变量:VERSION构建可能如下所示:

钢筋配置

...
{relx, [{release, {pgserver_dev, os:getenv("VERSION")},[pgserver]}
       ]},
       {dev_mode, true},
       {include_erts, false},
       {extended_start_script, true}
]}.

那么,是否可以在relx/rebar3 中使用linux 环境变量呢?

PS:这是不可能的os:getenv(),构建失败:

===> Error reading file rebar.config: 15: bad term
4

1 回答 1

1

您可以使用. rebar.config.script它将为您提供一个 Erlang 脚本,您可以在其中更新或添加rebar.config. 您可以在 Github 上搜索rebar.config.script以查找示例。我在这里找到了一个。

于 2019-11-30T12:42:21.933 回答