【发布时间】: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
【问题讨论】:
-
@Steve Vinoski:谢谢史蒂夫,这似乎正是我想要的。到现在为止一定在文档中忽略了它....
标签: makefile erlang relx rebar3