簡體   English   中英

如何解決 erlang 鋼筋的依賴性問題?

[英]How to resolve dependency issues with erlang rebar?

我正在嘗試將 swagger 添加到現有的演示項目erlang_rest_api作為學習經驗,但我似乎並沒有走得太遠......

我克隆了回購:

git clone https://github.com/dronowar/erlang_rest_api

然后我將 cowboy_swagger 添加到rebar.config

{cowboy_swagger, ".*", {git, "git://github.com/inaka/cowboy_swagger.git"}}

當我構建時,我得到:

Dependency not available: jsx-2.9.0 (undefined)
Dependency not available: cowboy-2.5.0 (undefined)
Dependency not available: ranch-1.6.2 (undefined)
Dependency not available: trails-2.1.0 (undefined)

所以我添加到rebar.config

{jsx, ".*", {git, "git://github.com/talentdeficit/jsx.git", {tag, "2.9.0"}}},
{ranch, ".*", {git, "git://github.com/ninenines/ranch.git", {tag, "1.6.2"}}},
{trails, ".*", {git, "git://github.com/inaka/cowboy-trails.git", {tag, "2.1.0"}}},

然后我刪除deps目錄並再次構建:

...
==> poolboy (get-deps)
==> sync (get-deps)
==> katana_test (get-deps)
==> jsx (get-deps)
ERROR: Failed to load erlang_rest_api/deps/trails/rebar.config: {error,
                                                                                      {34,
                                                                                       file,
                                                                                       {error,
                                                                                        function_clause,
                                                                                        [{erl_eval,
                                                                                          '-inside-an-interpreted-fun-',
                                                                                          [katana_test],
                                                                                          []},
                                                                                         {erl_eval,
                                                                                          eval_fun,
                                                                                          6,
                                                                                          [{file,
                                                                                            "erl_eval.erl"},
                                                                                           {line,
                                                                                            829}]},
                                                                                         {erl_eval,
                                                                                          expr_list,
                                                                                          6,
                                                                                          [{file,
                                                                                            "erl_eval.erl"},
                                                                                           {line,
                                                                                            888}]},
                                                                                         {erl_eval,
                                                                                          expr,
                                                                                          5,
                                                                                          [{file,
                                                                                            "erl_eval.erl"},
                                                                                           {line,
                                                                                            240}]},
                                                                                         {erl_eval,
                                                                                          expr_list,
                                                                                          6,
                                                                                          [{file,
                                                                                            "erl_eval.erl"},
                                                                                           {line,
                                                                                            888}]},
                                                                                         {erl_eval,
                                                                                          expr,
                                                                                          5,
                                                                                          [{file,
                                                                                            "erl_eval.erl"},
                                                                                           {line,
                                                                                            240}]},
                                                                                         {erl_eval,
                                                                                          eval_lc1,
                                                                                          6,
                                                                                          [{file,
                                                                                            "erl_eval.erl"},
                                                                                           {line,
                                                                                            706}]},
                                                                                         {erl_eval,
                                                                                          eval_generate,
                                                                                          7,
                                                                                          [{file,
                                                                                            "erl_eval.erl"},
                                                                                           {line,
                                                                                            735}]}]}}}
make: *** [Makefile:7: deps] Error 1

katana_test似乎是某種測試工具。 我嘗試將該存儲庫(inaka/katana-est)添加到rebar.config ,但它也不起作用。

我還嘗試將牛仔標記為前面“未定義”中列出的版本“2.5.0”,但這沒有任何區別。

我們真的需要這個特定的,列出每個依賴項的每個依賴存儲庫嗎?

我也嘗試使用十六進制:

    {jsx, ".*"},
    {ranch, ".*"},
    {trails, ".*"},
    {cowboy_swagger, "2.1.0"}

但我仍然得到:

Dependency not available: jsx-.* (undefined)
Dependency not available: trails-.* (undefined)
Dependency not available: cowboy_swagger-2.1.0 (undefined)
ERROR: compile failed while processing 

我是否缺少另一個依賴項?

問題是由於cowboy_swagger是為與rebar3一起使用而構建的,並且它與舊鋼筋不兼容,但 erlang_rest_api 使用的是舊鋼筋,正如您在其Makefile中看到的那樣。

您的問題的解決方案可能就像使用 rebar3 構建項目一樣簡單。 但如果你這樣做要小心,因為這會破壞make runmake run-local 您必須弄清楚如何使用發布來獲得相同的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM