我正在测试钢筋

  • Windows 8 64位是
  • Erlang 64位R15B02

  • 我已经从github代码编译了钢筋并创建了一个基本应用
    $ mkdir testapp; cd testapp
    $ mkdir rel
    $ rebar create-app appid=testapp
    $ echo "{sub_dirs, ["rel"]}." > rebar.config
    $ cd rel
    $ rebar create-node nodeid=testnode
    $ cd -
    $ rebar compile
    $ rebar generate
    ERROR: generate failed while processing testapp/rel: {'EXIT',{{badmatch,{error,"testapp: : Missing application directory."}
    ...
    

    我正在阅读reltool文档,但找不到任何有关应用程序目录的信息,唯一相关的选项是incl_cond,但默认情况下由rebar命令定义

    src/testapp.app.src
    {application, testapp,
     [
      {description, ""},
      {vsn, "1"},
      {registered, []},
      {applications, [
                      kernel,
                      stdlib
                     ]},
      {mod, { testapp_app, []}},
      {env, []}
     ]}.
    

    rel/reltool.config
    {sys, [
           {lib_dirs, []},
           {erts, [{mod_cond, derived}, {app_file, strip}]},
           {app_file, strip},
           {rel, "testapp", "1",
            [
             kernel,
             stdlib,
             sasl,
             testapp
            ]},
           {rel, "start_clean", "",
            [
             kernel,
             stdlib
            ]},
           {boot_rel, "testapp"},
           {profile, embedded},
           {incl_cond, derived},
           {mod_cond, derived},
           {excl_archive_filters, [".*"]}, %% Do not archive built libs
           {excl_sys_filters, ["^bin/.*", "^erts.*/bin/(dialyzer|typer)",
                               "^erts.*/(doc|info|include|lib|man|src)"]},
           {excl_app_filters, ["\.gitignore"]},
           {app, testapp, [{mod_cond, app}, {incl_cond, include}]}
          ]}.
    
    {target_dir, "testapp"}.
    
    {overlay, [
               {mkdir, "log/sasl"},
               {copy, "files/erl", "\{\{erts_vsn\}\}/bin/erl"},
               {copy, "files/nodetool", "\{\{erts_vsn\}\}/bin/nodetool"},
               {copy, "files/testapp", "bin/testapp"},
               {copy, "files/testapp.cmd", "bin/testapp.cmd"},
               {copy, "files/start_erl.cmd", "bin/start_erl.cmd"},
               {copy, "files/install_upgrade.escript", "bin/install_upgrade.escript"},
               {copy, "files/sys.config", "releases/\{\{rel_vsn\}\}/sys.config"},
               {copy, "files/vm.args", "releases/\{\{rel_vsn\}\}/vm.args"}
              ]}.
    

    最佳答案

    This might help you。 (在下面引用,以防原始链接消失)

    尽管不确定R15B01之后的版本进行此更改的原因是什么。

    关于erlang - 钢筋:缺少应用程序目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13485541/

    10-12 16:32