2011-11-14 58 views
3

在我的應用程序,我已經接近以下目錄結構:如何在製作發佈時使鋼筋/ reltool尊重ebin中的子目錄?

src/ 
    api/ 
    server.erl 
    model.erl 
    common/ 
    common_stuff.erl 
    util.erl 
    some_app.erl 
    some_server.erl 
    something_else.erl 
    some_app.app.src 

文件駐留在子目錄(普通,API等)在通常的包裝風格的命名空間。

-module(common.util). 

的src/API/server.erl被聲明爲:

-module(api.server). 

等 例如,如SRC /普通/ util.erl被聲明。

螺紋鋼編譯完美的作品,並在EBIN產生適當的子目錄樹:

ebin/ 
    api/ 
    server.beam 
    model.beam 
    common/ 
    common_stuff.beam 
    util.beam 
    some_app.beam 
    some_server.beam 
    something_else.beam 
    some_app.app 

但是,螺紋鋼生成只複製頂層文件到相對DIR:駐留在子目錄

rel/some_app/lib/some_app-0.0.2/ebin/ 
    some_app.beam 
    some_server.beam 
    something_else.beam 
    some_app.app 

一切不會被複制到發行版。因此,當我嘗試啓動產生的發佈,我立刻得到這樣的錯誤信息:

{"init terminating in do_boot",{'cannot load','api.server',get_files}} 

Crash dump was written to: erl_crash.dump 
init terminating in do_boot() 

我的螺紋鋼產生EBIN/some_app.app確實列出所有需要的模塊:

{application,some_app, 
      [{description,"0.0.2"}, 
       {vsn,"0.0.2"}, 
       {registered,[]}, 
       {applications,[kernel,stdlib,sasl]}, 
       {mod,{some_app,[]}}, 
       {env,[]}, 
       {modules,['api.server','api.model','common.common_stuff', 
         'common.util', some_app, some_server, 
         something_else]}]}. 

不任何人都知道如何讓「鋼筋生成」尊重埃賓的分部?我相信這也可能是reltool的問題。

謝謝。

回答

3

只有平板應用程序結構深受二郎·

「軟件包已經因爲它是5年多前推出了一個實驗性的功能支持,用它在你自己的風險,我們不積極維護和發展本功能。它可能不過來支持一些日子。

儘管如此包工作得非常好,但也有工具和其他地區的一些已知問題,其中包不很好地工作。」

http://www.erlang.org/doc/man/packages.html

+0

鏈接被破壞。有關「-module(common.util)」的更多信息。「 [這裏](http://www.erlang.se/publications/packages.html) – csyangchen

相關問題