【问题标题】:How to use OS environment variables in rebar3如何在 rebar3 中使用操作系统环境变量
【发布时间】:2017-01-18 11:07:46
【问题描述】:

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

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,构建可能如下所示:

rebar.config

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

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

P.S.:os:getenv() 不可能,构建失败:

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

【问题讨论】:

标签: makefile erlang relx rebar3


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-11-18
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    相关资源
    最近更新 更多