[英]How to handle deps while using rebar to release?
我正在使用rebar generate
來處理釋放,但是當我啟動應用程序時,我使用的deps將無法找到
我可以使用erl -pa ./ebin ./deps/*/ebin -s myapp
手動啟動應用程序。
我想知道如何配置rebar.config
和reltool.config
來處理依賴項? 謝謝。
為了使reltool生成包含依賴項的發行版,您需要將它們添加到reltool.config
。 我有一個名為drill_instructor
的應用程序,它具有以下reltool.config
。 像{app, stdlib, [{incl_cond, include}]},
告訴reltool在發布中包含該應用程序。 我還在the lib_dirs
設置中添加了deps。
{sys, [
{lib_dirs, ["../deps"]},
{erts, [{mod_cond, derived}, {app_file, strip}]},
{app_file, strip},
{rel, "drill_instructor", "1",
[
kernel,
stdlib,
sasl,
crypto,
ranch,
jiffy,
cowboy,
jiffy,
drill_instructor
]},
{rel, "start_clean", "",
[
kernel,
stdlib
]},
{boot_rel, "drill_instructor"},
{profile, embedded},
{incl_cond, exclude},
{excl_archive_filters, [".*"]}, %% Do not archive built libs
{excl_sys_filters, ["^bin/.*", "^erts.*/bin/(dialyzer|typer)",
"^erts.*/(doc|info|include|lib|man|src)"]},
{excl_app_filters, ["\.gitignore"]},
{app, sasl, [{incl_cond, include}]},
{app, crypto, [{incl_cond, include}]},
{app, stdlib, [{incl_cond, include}]},
{app, kernel, [{incl_cond, include}]},
{app, cowboy, [{incl_cond, include}]},
{app, ranch, [{incl_cond, include}]},
{app, jiffy, [{incl_cond, include}]},
{app, drill_armory, [{incl_cond, include}]},
{app, drill_instructor, [{incl_cond, include}, {lib_dir, ".."}]}
]}.
{target_dir, "drill_instructor"}.
{overlay, [
{mkdir, "log/sasl"},
{copy, "files/erl", "\{\{erts_vsn\}\}/bin/erl"},
{copy, "files/nodetool", "\{\{erts_vsn\}\}/bin/nodetool"},
{copy, "files/drill_instructor", "bin/drill_instructor"},
{copy, "files/drill_instructor.cmd", "bin/drill_instructor.cmd"},
{copy, "files/start_erl.cmd", "bin/start_erl.cmd"},
{copy, "files/install_upgrade.escript", "bin/install_upgrade.escript"},
{copy, "files/sys.config", "releases/\{\{rel_vsn\}\}/sys.config"},
{copy, "files/vm.args", "releases/\{\{rel_vsn\}\}/vm.args"}
]}.
在rebar.config中,我還將rel添加為sub_dir
:
{sub_dirs, ["rel"]}.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.