如何解决如何在独立的模块/处理程序中添加.app.src文件.erl文件
我正在处理erlang应用程序。我想从src /文件夹编译并运行一个.erl文件,该文件正在使用.app.src文件中的环境变量。
所以我的要求是在处理程序中添加.app.src文件,并独立编译/运行.erl文件。如何实现相同的目标。
解决方法
您可以使用application:load/1来加载.app文件而不启动它。
,我的答案是先前答案(Jose M)的补充。想象一下处理程序模块(handler.erl)如下:
-module(handler).
-export([start/0]).
start() ->
R1 = application:load(dynconf),io:format(user,"After app load. R2=~p~n",[R1]),Test = application:get_env(dynconf,test),"After config changed. Test=~p~n~n",[Test]).
和文件dynconf.app(将空闲应用程序定义为仅用于环境元组定义):
{application,dynconf,[{description,"dynamically (on fly) change configuration"},{vsn,"0.0.1"},{registered,[]},{applications,{modules,{mod,{dynconf,[]}},{env,[{test,7}]}]}.
然后在包含两个以上文件的文件夹中运行Erlang shell:
1> c("handler.erl").
{ok,handler}
2> handler:start().
After app load. R2=ok
After config changed. Test={ok,7}
您从dynconf.app文件中获得了环境var test
= 7。钢筋使用dynconf.app.src生成dynconf.app并将其复制到ebin文件夹中。但是对于单独的* .erl文件(没有钢筋项目),您可以手动创建* .app文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。