2016-07-24 72 views
2

我與的lib /文件夾內的兩個應用的藥劑應用:如何從mix.exs啓動多個應用程序?

myproject/lib/app1 myproject/lib/app2

他們都有其使用的應用程序文件:

myproject/lib/app1.exs myproject/lib/app2.exs

他們各自實現start並釀出監督樹。

myproject/mix.exs我想:

def application do 
    [ 
     mod: {app1, []}, 
      {app2, []}, 
     applications: [:foo, :bar] 
    ] 
    end 

但我得到的是與{app2, []}行了語法錯誤。

這樣的事情甚至可能嗎?如果不是,在Elixir中啓動監督樹的單獨申請的正確方法是什麼?

+0

你可以試試'做混合運行app1.exs,運行app2.exs' – coderVishal

回答

1

您應該添加APP2爲APP1的依賴,並調用它的應用,如:

mix.exs爲APP 2:

#... 
    def application do 
    [ 
     mod: {My.App2, []}, 
     applications: [:logger] 
    ] 
    end 

    defp deps do 
    [ 
     ... 
    ] 
    end 
    #... 
end 

mix.exs對APP:

def application do 
    [ 
     mod: {My.App1, []}, 
     applications: [:logger, :my_app2] 
    ] 
    end 

    defp deps do 
    [ 
     {:my_app2, in_umbrella: true} 
    ] 
    end 
    # ... 
end 

如果兩個應用程序都在同一個保護傘中,則是這種情況。如果沒有,只需添加my_app2(從十六進制,路徑或git)。

有關依賴性和傘項目的更多信息,看看@http://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-apps.html

相關問題