我在伞形应用程序结构中遇到了一个奇怪的问题。当我在运行mix clean
命令后编译整个项目时,我从 application_a 收到以下警告消息:
function ApplicationB.ModuleName.function_name/0 is undefined (module
ApplicationB.ModuleName is not available)
lib/file_name.ex:13`
问题是该模块在那里,ApplicationB.ModuleName.function_name/0
已定义并且是公共的。当我在交互式 shell 中从伞级运行项目时,一切正常,我可以手动调用该函数,它按预期工作。我一直在尝试进行研究,据我所知,ApplicationB 的功能应该可用于 ApplicationA,因为两者都在同一个保护伞中,并且无需将它们添加到 deps 列表中。如果该函数是在我的 application_b 的 /lib 文件夹中定义的,那么它应该可供其他应用程序使用。
有谁知道如何摆脱警告,更重要的是 - 解释一下?:)