无法在rebar生成的版本中覆盖vm.args

时间:2011-04-11 01:36:06

标签: templates parameters erlang

我正在尝试覆盖使用Rebar发布的版本的配置。我想自动修改vm.args文件以使用-sname chat参数到VM,而不是默认的-name chat@127.0.0.1

如果我理解正确,子目录files包含配置文件的版本,当我使用rebar create-node nodeid=chat时,这些版本将被复制到发布目录中。我没有强制覆盖,我已经使用我想要使用的值修改了文件中的版本。它没有通过发布。每当我重新创建发布时,它都会使用默认值覆盖文件./etc/vm.args。我错误地使用钢筋吗?

这是我一直在做的(在Makefile中)来生成发行版:

gen-rel:
    rm -rf ./rel/*
    rebar create-node nodeid=chat
    rebar generate

start:
    ./rel/chat/bin/chat start

stop:
    ./rel/chat/bin/chat stop

ping:
    ./rel/chat/bin/chat ping

rebuild: stop compile gen-rel start ping
PS:这是我应该如何使用螺纹钢进行构建和调试?我有另一个节点,我想连接到这个节点,我认为创建和运行该版本是让我的版本可以访问的最快捷,最简单的方法......

1 个答案:

答案 0 :(得分:2)

create-node rebar子命令只应运行一次,而不是每次运行generate。如果您从create-node制作目标中删除gen-rel行并使用替换编辑rel/files/vm.args文件,那么您应该会发现生成的版本现在将包含您的替代。

回顾步骤:

  1. 从您的make文件中删除rebar create-node nodeid=chat行(只需运行一次)。
  2. 使用覆盖更新rel/files/vm.args文件。
  3. 运行make rebuild
  4. 在丢失之前,将您的rel /文件覆盖更改到SCM / VCS存储库中;)
  5. HTH