2

我在文档中找不到它(或者,更可能的是,我错过了它),所以我认为这些是步骤:

  1. 将现有的 Erlang 应用程序(或创建一个新的rebar3 new app)复制到<umbrella_root>/apps/(或<umbrella_root>/libs/

  2. 将新应用添加到以下relx部分<umbrella_root>/rebar.config

     { relx
     , [ {release
         , { your_big_project_name, "0.1.0" }
         , [ your_big_project_name_or_smth_else
           , the_newly_copied_app
         % , sasl
           ]
         }
       , {sys_config, "./config/sys.config"}
       , {vm_args, "./config/vm.args"}
       , {dev_mode, true}
       , {include_erts, false}
       , {extended_start_script, true}
       ]
     }.
    
  3. 将新应用所需的配置环境变量添加到<umbrella_root>/config/sys.config.

  4. 如果新应用使用插件,请在<umbrella_root>/apps/<new_app>/rebar.config.

我接近了吗?如果是,这是否意味着伞形应用程序可以嵌套?(这可能应该是一个单独的问题)。

4

1 回答 1

1

是的,这就是您在发布中包含应用程序文件所需的全部内容。

关于嵌套伞应用,请查看rebar3 网站中的以下线程

编辑:
链接的线程谈到将伞形应用程序作为依赖项,rebar3 不支持。引用:

只是不支持这种形式的伞应用程序作为依赖项。处理包含多个应用程序的单个依赖项的版本控制和锁定不是我们曾经想过的事情,所以它是不可行的。

这并不意味着您不能使用某些技巧,例如使用 git 子模块和在根目录中配置的多个project_app_dirs 。对于 rebar3,这些应用程序将是本地应用程序,但您需要从“外部”rebar3 处理它们(不是真正的“嵌套”伞形应用程序)。

于 2020-08-23T15:06:05.650 回答