4

私は Erlang アプリケーションを持っており、スタンドアロンの escript 実行可能ファイルを作成する Basho rebar を使用して、簡単にコンパイルして実行できます。コマンドラインから次のように実行します: ./myapp myconfig.config

私の質問は、Erlang シェル内でどのように実行できるかということです。このアプリケーションには、依存関係として他に 4 つのアプリケーションがあります。Rebar のすべてを簡単にコンパイルします。しかし、次のようにシェル内からこのアプリケーションを実行する必要があります。

erl -noshell -name node1@machine -run test start parameter1 -s init stop;

しかし、どのパスで実行すればよいかわかりません。「ebin」フォルダー (beam ファイルがある場所) で試してみると、依存関係にアクセスできません。ご覧のとおり、各依存アプリケーションには独自の「ebin」フォルダーがあります。では、「erl -noshell」コマンドでアプリケーションを実行するにはどうすればよいでしょうか (依存アプリケーションを考えてください)。Rebar はこれらすべてを自動的に処理します。

4

1 に答える 1

8

Rebar を利用した OTP アプリケーションの典型的なディレクトリ構造は、次のようなものです。

/
  src/
  ebin/
  deps/
    dep1/
      src/
      ebin/
    dep2/
      src/
      ebin/

そのため、プロジェクトのルート ディレクトリにいる場合は、引数erlで適切な場所を指すことができます。-paアプリケーションとその依存関係の両方の BEAM ファイルを見つける場所を指定するには、次のことを試してください。

erl [...] -pa ebin -pa deps/*/ebin
于 2012-12-29T22:50:38.427 に答える