mix.ex
について
application関数で以下を指定する
- トップレベルモジュール
start関数が実装されているモジュール - start関数に渡す引数
goh@goh% iex -S mix
Erlang/OTP 21 [erts-10.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] [dtrace]
Interactive Elixir (1.7.3) - press Ctrl+C to exit (type h() ENTER for help)
> Sequence2.Server.next_number
456
mod
オプション
以下を指定する
- エントリポイントであるモジュール
- start関数に渡す引数
registered
オプション
アプリケーションが登録する予定の名前のリストを指定する
指定された名前はユニークであることが保証される
goh@goh% mix compile
Compiling 6 files (.ex)
warning: function init/1 required by behaviour GenServer is not implemented (in module Sequence2.Stash).
We will inject a default implementation for now:
def init(args) do
{:ok, args}
end
You can copy the implementation above or define your own that converts the arguments given to GenServer.start_link/3 to the server state.
lib/sequence2/stash.ex:1
Generated sequence2 app
コンパイルして生成された _build
ディレクトリは、ErlangのOTPと互換性がある
sequence2.app
には、アプリケーションを定義する情報が定義される
一部は mix.exs
から来ている
{application,sequence2,
[{applications,[kernel,stdlib,elixir,logger]},
{description,"sequence2"},
{modules,['Elixir.Sequence2','Elixir.Sequence2.Application',
'Elixir.Sequence2.Server','Elixir.Sequence2.Stash',
'Elixir.Sequence2.SubSupervisor',
'Elixir.Sequence2.Supervisor']},
{vsn,"0.1.0"},
{mod,{'Elixir.Sequence2.Application',456}},
{registered,['Elixir.Sequence2.Server']}]}.
env
オプション
アプリケーションに渡すキーワードリストを指定できる
Application.get_env(アプリケーション名, 環境パラメータ名)
で参照する