1

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

加载项目时出错:a at /Users/me/fun/a/deps/ar ** (Mix) Trying to load ArgumentParser.Mixfile from "/Users/me/fun/a/deps/a/mix.exs" 但是另一个同名项目已在“/Users/jistone/fun/a/mix.exs”中定义

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

  • a从 deps 文件夹中删除
  • a从 mix.lock 中删除
  • 更改,为deps 条目deps/b/mix.exs添加一个指向项目文件夹。path:a
  • 更改mix.exs和指向各自的项目文件ab

所有失败并显示相应的错误消息。

所以问题是:如何让当前正在构建的项目满足混合识别依赖项的要求?


编辑:更多细节

Packagea是一个用于解析命令行参数的库。包b是用于生成 README.md 文件的混合任务。在包中b,我使用包a来解析混合任务的命令行参数。现在我正在尝试使用 mix 任务为 package 生成 README.md a,我得到了上述失败。

我可以通过启动 iex 会话并加载相关的梁文件来解决问题,但如果可能的话,我想让 mix 任务工作......

4

1 回答 1

0

我找到了 3 个解决方案(没有一个是完美的)

  • 将 readme docgen 项目构建为 escript,然后将其作为依赖项删除。

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

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

于 2015-12-31T19:56:53.630 回答