erlang 動態編譯和加載遇到的問題。

erlang具備動態加載代碼的能力。在開發過程當中通常都讓代碼自動編譯加載,這樣開發起來很爽。 git

最有名項目應該是sync了地址:https://github.com/rustyio/sync
最近在用rebar3 構建項目。並且又用到了erlydtl,在用sync自動編譯dtl的時候出現了問題。
erlydtl 的編譯配置是這樣的。github

{erlydtl_opts, [
                {doc_root, "priv/templates"},
                {outdir, "ebin"},
                {compiler_options, [report, return, debug_info]},
                {source_ext, ".dtl"},
                {module_ext, "_view"}
                ]}

可是sync編譯出來文件結尾總是 _dtl.beam 而不是配置 {module_ext, "_view"} 應該產生的_view.beam,並且生成的beam的位置也不對。工具

只好翻源碼,發現sync並不支持erlydtl_opts的配置,*_dtl.beam 命名是寫死的。。sync動態編譯dtl的這條路看來是走不通了。
而後翻rebar3 插件。發現了rebar3_auto 插件。簡單建了個工程作實驗沒問題。可是當我在項目中天劍cowboy的後。rebar3_auto 只編譯第一次。而後就失靈了。(並且inotify_wait 進程已經再也不了。。 ),google後發早就有人爆出這個問題了https://github.com/tsloughter...,看來rebar3_auto 如今還無法用。google

接着找到active,可是過小衆了,主要支持的mad。對rebar也就是兼容。試了一下沒成功也不想深刻研究它。插件

到這的結果就是用rebar3 我還沒找到一個好的reload的工具。。。苦逼啊debug

相關文章
相關標籤/搜索