伞应用程序中的共享代码

时间:2015-12-09 20:06:59

标签: elixir

我的伞形应用程序有以下目录结构:

umbrella_app/
    _build/
    apps/
      client/
         config/
         lib/
           client.ex
         test/
       server/
         ...
    config/

我是否有办法在umbrella_app内的某处编写代码,可以从我的clientserver访问,而无需创建其他子应用程序?

如:

# umbrella_app/apps/client/lib/client.ex

defmodule UmbrellaApp.Client do
  UmbrellaApp.some_function()
end

1 个答案:

答案 0 :(得分:3)

是。在伞中创建另一个应用程序。假设您将应用程序命名为shared,那么您可以将其添加到其他应用程序mix.exs依赖项中:

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

现在,您可以像在同一个应用Shared.do_something中一样调用代码。