繁体   English   中英

如何混合管理包的相互依赖性?

[英]How to manage package interdependencies in mix?

我已经为Elixir建立了几个有用的库。 我把它们都用十六进制表示。 我已经在库B中使用库A,并且我刚刚将库B合并为库A的依赖项。现在当然不会构建库A。

加载项目时出错:/ Users / me / fun / a / deps / ar **(混合)尝试从“ /Users/me/fun/a/deps/a/mix.exs”加载ArgumentParser.Mixfile已经在“ /Users/jistone/fun/a/mix.exs”中定义了另一个具有相同名称的项目

到目前为止,这是我尝试过的:

  • 除去a从DEPS夹
  • 除去a从mix.lock
  • 改变deps/b/mix.exs ,添加path:对于a DEPS条目指向的项目文件夹。
  • 更改mix.exs以使ab指向各自的项目文件夹

全部失败,并显示相应的错误消息。

所以问题是:如何通过混合来识别当前正在构建的项目是否满足依赖关系?


编辑:更多详细信息

a是用于解析命令行参数的库。 程序包b是用于生成README.md文件的混合任务。 在程序包b我使用程序包a解析了mix任务的命令行参数。 现在,我尝试使用mix任务为程序包a生成README.md,但出现上述错误。

我可以通过启动iex会话并加载相关的梁文件来解决,但我希望在可能的情况下使混合任务正常工作...

我发现了3个解决方案(没有一个完美)

  • 将自述文件docgen项目构建为escript,然后将其删除为依赖项。

  • 在mix.exs文件中更改项目名称,生成文档,然后将其更改回。

  • 使用iex中的-pa arg加载所有梁文件并手动运行代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM