2011-11-14 6 views
3

私のアプリでは、私は次のように近いディレクトリ構造を持っている:リリース時にebinでrebar/reltoolのサブディレクトリを尊重する方法は?

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など)に存在し、通常のパッケージスタイルで名前空間されています。 は、例えば、SRC /共通/ util.erlが宣言されているとして:ように

-module(api.server). 

と:

-module(common.util). 

SRC/API/server.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 

しかし、鉄筋は、相対ディレクトリにコピーするだけトップレベルのファイルを生成します。サブディレクトリに存在する

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]}]}. 

ん私は生成されたリリースを起動しようとするとこのように、私はすぐにエラーメッセージのこの種を取得します誰かがebinのサブディレクトリを "rebar generate"する方法を知っていますか?私はこれもreltoolの問題かもしれないと信じています。

ありがとうございました。それは実験的な機能となって5年以上前に導入されて以来のみフラットアプリケーションの構造がよくアーランによってサポートされている

答えて

3

「パッケージがあります。ご自身の責任でそれを使用して、我々は積極的にこれを維持し、発症しません

このパッケージにもかかわらず、かなりうまく機能しますが、パッケージがうまく機能しないツールやその他の部分には既知の問題がいくつかあります。

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

+0

リンクが壊れています。 "-module(common.util)"の詳細については、こちらをご覧ください。 [ここ](http://www.erlang.se/publications/packages.html) – csyangchen

関連する問題