我目前有一个基于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
答案 0 :(得分:0)
您可以使用rebar.config.script
来制作dynamic configuration。它将为您提供一个Erlang脚本,您可以在其中更新或添加rebar.config
中的术语。您可以在Github上搜索rebar.config.script
来查找示例。我发现了一个here。