3

私は rebar を使用して、次のような依存関係を取得/コンパイルしていますrebar.conf:

{deps, [
    ...
    {couchbeam, ".*", {git, "git://github.com/benoitc/couchbeam.git", {branch, "master"}}}
  ]}.

次に、relx を使用してリリースを生成します。relx.config には次のものがあります。

{release, {myapp, "0.0.1"}, [myapp, couchbeam]}.
{extended_start_script, true}.

myapp.app.src:

{application, myapp,
 [                             
  {description, ""},           
  {vsn, "1"},
  {registered, []},            
  {applications, [             
                  kernel,      
                  stdlib,  

                  ... ,

                  couchbeam    
                 ]},
  {mod, { myapp_app, []}},    
  {env, []}
 ]}.

couchdb を開始したら、コンソールでリリースを実行し、次の行で couchbeam をテストしようとします。

Host = "localhost",
Port = 5984,
Prefix = "",
Options = [],
S = couchbeam:server_connection(Host, Port, Prefix, Options).
{ok, _Version} = couchbeam:server_info(S).

最後の行でエラーが表示されます: ** exception error: undefined function jsx:decode/1


これを解決するために、私は開いdeps/couchbeam/couchbeam.app.srcて変更しました:

 {applications, [kernel,
                  stdlib,
                  asn1,
                  crypto,
                  public_key,
                  ssl,
                  idna,
                  hackney
                  ]},

そしてjsxを追加しました:

{applications, [kernel,
                  stdlib,
                  asn1,
                  crypto,
                  public_key,
                  ssl,
                  idna,
                  hackney,
                  jsx
                  ]},

依存関係としてcouchbeamを追加した方法のセットアップに何か問題がありますか? 依存関係の .app.src をハックするべきではないように感じます

4

1 に答える 1