我有几个有用的库,我已经为elixir构建过。我已经把它们放在十六进制上了。我已经在库B中使用库A,并且我已经将库B作为库A的依赖项。现在当然库A不会生成。如何在组合中管理包相互依赖关系?
加载时出错项目:a。在/用户/我/有趣/ A/DEPS/AR **(混合)试图从加载ArgumentParser.Mixfile“/用户/我/有趣/ A/DEPS/A/mix.exs”,但具有相同名称的另一个项目在已定义的‘/Users/jistone/fun/a/mix.exs’
这里是我到目前为止已经试过:
- 从deps文件夹中删除
a
- 删除
a
from mix.lock - change
deps/b/mix.exs
,将path:
添加为a
deps条目以指向项目文件夹。 - 改变
mix.exs
为a
和b
在各自的项目文件夹
指向所有的失败与相应的错误消息。
所以问题是:如何通过构建当前项目来满足混合来识别依赖关系?
编辑:更多细节
包a
是用于解析命令行参数的库。程序包b
是一个用于生成README.md文件的混合任务。在包b
中,我使用包a
来解析混合任务的命令行参数。现在我正在尝试使用混合任务为包a
生成README.md,并且我得到了上述失败。
我可以通过启动一个会话IEX和加载相关的光束文件解决办法,但我想获得混合任务工作,如果可能的...
循环依赖可能是代码分离不够好的标志。你有没有想过提取第三个共同部分的库?也许将两个库合并成一个?在不知道代码和特定接口的任何细节的情况下,很难说出最佳解决方案。 –
完全同意帕特里克在这一个。我会试图解决循环依赖本身,而不是试图弄清楚如何得到混合(或十六进制)来处理它。 –
@PatrickOscity真的没有共同之处。我有一个用于解析命令行参数的库和一个用于生成文档的库。两个图书馆都使用自己和彼此。 – jisaacstone