【问题标题】:How to add new Erlang application to a Rebar3 umbrella project?如何将新的 Erlang 应用程序添加到 Rebar3 伞形项目?
【发布时间】:2020-12-11 03:29:41
【问题描述】:

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

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

  2. 将新应用添加到<umbrella_root>/rebar.config 中的relx 部分:

     { 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中配置。

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

【问题讨论】:

    标签: erlang rebar3


    【解决方案1】:

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

    关于嵌套伞应用,请看下面thread in rebar3's site

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

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

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

    【讨论】:

    • 感谢您的链接!我将单独问这个问题,因为它本身显然是一个很大的话题。
    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • @AshwinGeetD'Sa 我将编辑答案以至少包含第一个线程回复
    猜你喜欢
    • 2021-08-17
    • 2021-01-22
    • 2011-09-13
    • 2021-05-05
    • 2018-07-18
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多