为什么我的 Erlang shell 不加载钢筋依赖项?



我有一个简单的项目使用螺纹钢与此配置:

  {sub_dirs, [
              "gen",
              "apps/basilisk_server",
              "rel"
              "apps/*"
              "ebin"
              "deps/*/ebin"
             ]}.
  {erl_opts, [debug_info, fail_on_warning]}.

  { 
    deps, 
    [
     { email_address, ".*", { git, "git://github.com/mswimmer/erlang-email-address.git", "master"}},
     { gen_smtp     , ".*", { git, "https://github.com/Vagabond/gen_smtp.git"          , "master"}},
     { pat          , ".*", { git, "https://github.com/selectel/pat.git"               , "master"}},
     { thrift          , ".*", { git, "https://github.com/MustyMustelidae/ThriftErl.git", "master"}}
    ]
  }.
我的目录结构是:
            +---.rebar
            +---deps
            |   +---edown
            |   |   +---.rebar
            |   |   +---bin
            |   |   +---doc
            |   |   +---ebin
            |   |   +---priv
            |   |   |   ---scripts
            |   |   +---samples
            |   |   ---src
            |   +---email_address
            |   |   +---.rebar
            |   |   +---ebin
            |   |   +---src
            |   |   ---test
            |   +---gen_smtp
            |   |   +---.rebar
            |   |   +---ebin
            |   |   +---src
            |   |   +---test
            |   |   ---testdata
            |   +---gproc
            |   |   +---.rebar
            |   |   +---doc
            |   |   +---ebin
            |   |   +---include
            |   |   +---patches
            |   |   |   +---gen_leader
            |   |   |   +---kernel
            |   |   |   ---stdlib
            |   |   +---priv
            |   |   +---reference
            |   |   +---src
            |   |   +---test
            |   |   |   ---eqc
            |   |   ---tetrapak
            |   +---lager
            |   |   +---.rebar
            |   |   +---ebin
            |   |   +---include
            |   |   +---src
            |   |   ---test
            |   +---pat
            |   |   +---.rebar
            |   |   +---ebin
            |   |   +---include
            |   |   ---src
            |   +---proper
            |   |   +---.rebar
            |   |   +---doc
            |   |   +---ebin 
            |   |   +---examples
            |   |   +---include
            |   |   +---src
            |   |   ---test
            |   +---tempo
            |   |   +---.rebar
            |   |   +---c_src
            |   |   +---doc
            |   |   |   ---utf8
            |   |   +---ebin
            |   |   +---src
            |   |   ---test
            |   ---thrift
            |       +---.rebar
            |       +---ebin 
            |       +---include
            |       +---out
            |       |   ---production
            |       |       ---erl
            |       +---src
            |       ---test
            +---ebin <--- My .app/.beam
            ---src <--- My source files
                ---gen <---More source files

(Sorry for the wall)每个依赖项在它的ebin文件夹中都有一个。app文件,我正在运行命令erl -pa apps/*/ebin -pa ebin -pa deps/*/ebin。我希望我应该能够运行application:ensure_all_started(somedep).,其中"somedeep"是在它的ebin文件夹中定义的.app的依赖项的名称。但是当我对它们中的任何一个运行它时,我得到错误{error,{somedep,{"no such file or directory","somedep.app"}}}。当我为自己的应用程序运行它时,我得到了正确的响应({ok,_})。因为我不能启动依赖项的应用程序,所以我自己的应用程序失败,出现undef错误。我错过了一些步骤注册我的。app文件与外壳?

Windows命令shell不扩展apps/*/ebindeps/*/ebin中的通配符,因此没有正确设置Erlang加载路径

最新更新