問題出在rebar,rebar3沒測試。git
今天用rebar管理項目,在添加一個類庫時遇到問題,類庫地址爲:github
https://github.com/tonyg/erlang-rfc4627 shell
rebar.config裏面這麼寫:json
{deps, [ {erlang-rfc4627, ".*", {git, "git://github.com/tonyg/erlang-rfc4627.git", "master"}}, ]}.
這樣寫不行,查了好久,才發現問題出在erlang-rfc4627這個字段。app
使用erlang讀取文件:測試
$erl 1>file:consult("rebar.config"). {error,{5,erl_parse,"bad term"}}
緣由極可能是,erlang中的原子不以-符號鏈接,erlang-rfc4627能夠更名爲erlang_rfc4627,或者'erlang-rfc4627'。spa
改成erlang_rfc4627繼續。code
獲取全部依賴仍是失敗,失敗緣由:xml
{name_mismatch,... {expected,erlang_rfc4627}, {has,rfc4627_jsonrpc}}}.
參考:Respository Name and application name conflictsrpc
這是由於ebin/rfc4627_jsonrpc.app寫着:
{application, rfc4627_jsonrpc, ...}.
而rebar下載的目錄名稱爲erlang_rfc4627, 跟rfc4627_jsonrpc不匹配。
最後改成:
{deps, [ {rfc4627_jsonrpc, ".*", {git, "git://github.com/tonyg/erlang-rfc4627.git", "master"}} ]}.
名稱改成app中的項目名稱便可。