我的伞形应用程序有以下目录结构:
umbrella_app/
_build/
apps/
client/
config/
lib/
client.ex
test/
server/
...
config/
我是否有办法在umbrella_app
内的某处编写代码,可以从我的client
和server
访问,而无需创建其他子应用程序?
如:
# umbrella_app/apps/client/lib/client.ex
defmodule UmbrellaApp.Client do
UmbrellaApp.some_function()
end
答案 0 :(得分:3)
是。在伞中创建另一个应用程序。假设您将应用程序命名为shared
,那么您可以将其添加到其他应用程序mix.exs依赖项中:
defp deps do
[
...
{:shared, in_umbrella: true},
...
]
end
现在,您可以像在同一个应用Shared.do_something
中一样调用代码。