2011-11-14 6 views
3

내 응용 프로그램에서 나는 다음과 유사한 dir 구조를 가지고있다.릴리스를 만들 때 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 

subdirs (common, api 등)에있는 파일은 일반적인 패키지 스타일로 네임 스페이스로되어있다. 예를 들어, src/common/util.erl은 다음과 같이 선언됩니다.

-module(common.util). 

src/api/server.erl은

-module(api.server). 

등으로 선언됩니다.

서브 디렉토리에있는 모든 요소는 다음과 같은 경우에만 사용할 수 있습니다. 릴리스로 복사되지 않습니다. 따라서 생성 된 릴리스를 시작하려고하면 다음과 같은 오류 메시지가 즉시 나타납니다.

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

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

내 rebar 생성 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의 하위 디렉토리를 존중합니까? 나는 이것이 reltool의 문제 일 수도 있다고 생각한다.

감사합니다.

답변

3

만 평면 응용 프로그램의 구조는 잘

"패키지는이 실험적인 기능을하고 5 년 이상 전에 도입 된 이후 · 얼랑 지원합니다. 우리는 적극적으로 유지하지 않는 당신의 자신의 위험에 그것을 사용이 개발

이 패키지에도 불구하고 아주 잘 작동하지만 패키지가 잘 작동하지 않는 툴과 다른 부분에는 알려진 몇 가지 문제가 있습니다. "

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

+0

링크가 끊어졌습니다. 자세한 정보는 "-module (common.util)." [여기] (http://www.erlang.se/publications/packages.html) – csyangchen