无法覆盖 rebar 生成的版本中的 vm.args
我正在尝试覆盖使用 Rebar 制作的版本的配置。我想自动修改 vm.args 文件以使用 VM 的 -sname chat
参数,而不是默认的 -name [电子邮件受保护]
。
如果我理解正确的话,子目录 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:这是我应该如何使用 rebar 进行构建和调试的吗?我有另一个节点想要连接到此节点,并且我认为创建和运行版本是使我的版本可访问的最快且最简单的方法...
I'm trying to override the configuration of a release made using Rebar. I'd like to automatically modify the vm.args file to use an -sname chat
parameter to the VM, rather than the default -name [email protected]
.
If I understand it correctly, the subdirectory files
contains versions of the configuration files that will be copied into a release directory when I use rebar create-node nodeid=chat
. I am not forcing an overwrite, and I've modified the version in files with the values I want to use. It doesn't make it through to the release. Whenever I recreate the release, it overwrites the file ./etc/vm.args
with default values. Am I using rebar incorrectly?
Here's what I've been doing (in a Makefile) to generate the release:
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: Is this how I'm supposed to be building and debugging using rebar? I have another node that I want to connect to this with, and I assumed that creating and running the release is the quickest and easiest way to get my release reachable...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
create-node
rebar 子命令只能运行一次,而不是每次generate
之前运行。如果您从gen-rel
make 目标中删除create-node
行并使用您的覆盖编辑rel/files/vm.args
文件,那么您应该会发现生成的版本现在包含您的覆盖。回顾步骤:
rebar create-node nodeid=chat
行(只需运行一次)。rel/files/vm.args
文件。make重建
。HTH
The
create-node
rebar subcommand should only be run once, rather than every time beforegenerate
. If you removecreate-node
line from yourgen-rel
make target and edit therel/files/vm.args
files with your overrides then you should find the generated release will now contain your overrides.Recap steps:
rebar create-node nodeid=chat
line from your make file (just run it once).rel/files/vm.args
file with your override(s).make rebuild
.HTH