依存関係の管理とリリースの処理に関する rebar のドキュメントに厳密に従い、以前の質問の 1 つに対する受け入れられた回答に記載されているものと同様のリリースを作成しようとしました。
ただし、rebar によって生成された OTP リリース内に OTP アプリケーションとして含まれるヨーを作成することはできません。
これが私がすることです:
- 公式の rebar ドキュメントに従ってリリースを作成します (完了、シンプルな gen_server を /rel/myapp/bin/myapp start で実行できます)
- プロジェクト ディレクトリの rebar.config ファイルで yaws 依存関係を指定します。
- 実行
rebar get-deps
(これは yaws と ibrowse をプルします) - これを に追加
reltool.config
:{app, yaws, [{incl_cond, include}]}
- のアプリケーションのリストに yaws を追加します
myapp.app.src
rebar compile generate
:
...
==> Leaving directory '/myapp/deps/yaws/rel'
==> yaws (compile)
yaws.erl:13: can't find include file "yaws_appdeps.hrl"
yaws.erl:220: undefined macro 'YAWS_APPDEPS'
yaws.erl:174: function start_app_deps/0 undefined
yaws.erl:194: function start_app_deps/0 undefined
ERROR: Command [compile] failed!
ノート:
公式の yawsドキュメントは、この問題に関してあまり説明していないようです。
ヨーをカウボーイに変更すると、そのようなエラーは発生しません。
アップデート
これが私のディレクトリ構造です:
.
├── apps
│ └── myapp
├── deps
│ ├── ibrowse
│ └── yaws
└── rel
└── files