Tra*_*ots 9 dependencies version elixir-mix elixir
我正在尝试为我的项目增加覆盖范围,但一直遇到问题。
我已经尝试了此列表底部错误消息中的所有建议。
我有一个大型项目,我希望为单元测试添加覆盖范围,但所有覆盖范围包都类似。
我开始了一个干净的项目,“bug”,只有mix deps() 添加所以干扰被最小化。
任何帮助,将不胜感激。
版本:
rebar3 --version
rebar 3.13.2 on Erlang/OTP 22 Erts 10.4.3
elixir --version
Erlang/OTP 22 [erts-10.4.3] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]
Elixir 1.9.4 (compiled with Erlang/OTP 22)
erl --version
Erlang/OTP 22 [erts-10.4.3] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]
Eshell V10.4.3 (abort with ^G)
Run Code Online (Sandbox Code Playgroud)
deps 中的 mix.exs
defp deps() do
[
#{:coverex, "~> 1.5", only: [:test], runtime: false},
{:excoveralls, "~> 0.13.0", only: [:test], runtime: false},
{:idna, "~> 6.0.1"},
]
end
Run Code Online (Sandbox Code Playgroud)
我使用了不同版本的coverex 和excoveralls,但结果是一样的。
我注意到:
"Bad dependency version for httpoison (and others...)"
Run Code Online (Sandbox Code Playgroud)
但我也不明白该怎么办。
错误/警告消息似乎与依赖项有关。依赖项不应该自己解决这些问题吗?
这是清单:
=> mix clean
=> mix deps.get
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
certifi 2.5.2
excoveralls 0.13.0
hackney 1.16.0
idna 6.0.1 # Below it says idna 6.0.1 not found - why?
jason 1.2.1
metrics 1.0.1
mimerl 1.2.0
parse_trans 3.3.0
ssl_verify_fun 1.1.6
unicode_util_compat 0.5.0
All dependencies are up to date
Command completed
=> mix test # Try to run default test on a new repo
===> Package idna-6.0.1 not found. Fetching registry updates and trying again...
===> Updating package registry...
===> Writing registry to /home/cecilm/.cache/rebar3/hex/default/registry
===> Generating package index...
===> [appsignal:1.6.2], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.6-beta.1], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.0], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.7.0-alpha.4], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.0-beta.1], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.3], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.7.0-alpha.3], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [batch_loader:0.1.0-beta.4], Bad dependency version for absinthe: ~> 1.4.0 or ~> 1.5.0-beta.
===> [prometheus_httpd:2.1.10], Bad dependency version for prometheus: ~> 3.5 or ~> 4.2.
===> [batch_loader:0.1.0-beta.5], Bad dependency version for absinthe: ~> 1.4.0 or ~> 1.5.0-beta.
===> [appsignal:1.7.0-alpha.2], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.7.0-alpha.1], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [batch_loader:0.1.0-beta.6], Bad dependency version for absinthe: ~> 1.4.0 or ~> 1.5.0-beta.
===> [appsignal:1.12.0], Bad dependency version for decorator: ~> 1.2.3 or ~> 1.3.
===> [appsignal:1.6.1], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.5], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.6-beta.2], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.6], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.7], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [appsignal:1.6.4], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> [batch_loader:0.1.0-beta.3], Bad dependency version for absinthe: ~> 1.4.0 or ~> 1.5.0-beta.
===> [appsignal:1.6.0-alpha.1], Bad dependency version for httpoison: ~> 0.11 or ~> 1.0.
===> Writing index to /home/cecilm/.cache/rebar3/hex/default/packages.idx
===> Package not found in registry: {<<"idna">>,<<"6.0.1">>}.
(Mix) Could not compile dependency :hackney, "/home/cecilm/.mix/rebar3 bare
compile --paths="/home/cecilm/play/Elixir/bug/_build/test/lib/*/ebin"" command
failed. You can recompile this dependency with "mix deps.compile hackney",
update it with "mix deps.update hackney" or clean it with "mix deps.clean
hackney"
Run Code Online (Sandbox Code Playgroud)
小智 20
这是与 Erlang 的rebar包管理器和idna依赖项的兼容性问题。您需要通过运行来更新项目中的钢筋
mix local.rebar
Run Code Online (Sandbox Code Playgroud)
在命令行。这应该可以解决问题。
(来自我在elixirforum.com 上的交叉帖子)
删除本地 rebar3 和 mix 安装,以及当前获取的依赖项及其编译版本解决了这个问题。
rm -rf ~/.cache/rebar3 ~/.mix deps _build
mix deps.get
Run Code Online (Sandbox Code Playgroud)
据我所知,hex 会告诉你是否有新版本可用,通过 mix local.rebar 安装和使用的 rebar 版本取决于你使用的 mix(所以长生不老药)的版本。它受精确版本匹配的约束,而不是(语义)范围。
因此,好的习惯是当 hex 告诉您可以在 mix deps.get 后更新时运行 mix local.hex,而您应该在每次更新 elixir 后运行 mix local.rebar。
每周做一次。某种与依赖项有关的棘手错误......
| 归档时间: |
|
| 查看次数: |
736 次 |
| 最近记录: |