美文网首页
Elixir的umbrella project

Elixir的umbrella project

作者: HughLuo | 来源:发表于2016-01-25 22:07 被阅读278次

    为什么要有umbrella project?

    Mix提供了相当完善的应用管理(elixir中所谓应用有点像是其它语言中的)。由于elixir中
    一个应用的粒度比较小,如果任由每个应用分开管理,则随着项目复杂度的逐渐增大,应用之间的依赖
    关系也将失去控制。为了能妥善地管理应用之间的依赖,Mix专门推出一个专门用来管理应用的project
    类型,名字就叫作umbrella。
    实际中一个应用的规模能有多大?由于没有这一方面的经验,所以只能大概猜测。从目前的代码实例来看
    elixir并不鼓励大的应用,每一个应用的尺寸都很小。

    如何创建umbrella project?

    umbrella projectr的创建还是相当简单的,只需要在命令行输入如下命令:

    mix new project_name --umbrella
    

    需要把上面命令行中的project_name替换成相应的工程名称

    umbrella_project/mix.exs文件是和正常工程的mix.exs文件有点不同的。不同之处在于没有app
    option,取而代之的是apps_path option。apps_path option其实是指向了该umbrella
    project所管理的子应用的路径。

    在umbrella project中创建新的project

    umbrella工程创建完成之后,就可以该工程之下创建实际的工作工程了。比如我想创建一个空的kv工程只需
    要在命令行输入如下命令:

    cd umbrella_project\apps
    mix new kv --module KV --sup
    

    可以看出和正常的创建过程是一样的,不同点有以下两点:

    • 需要首先进入到apps目录下面,这是umbrella工程默认的保存所有应用的地方
    • MIX可以分辨出当前的kv工程是在umbrella project之下,会在apps/kv/mix.exs文件的project
      函数中加入以下的options:
    build_path: "../../_build",
    config_path: "../../config/config.exs",
    deps_path: "../../deps",
    lockfile: "../../mix.lock",
    

    相关文章

      网友评论

          本文标题:Elixir的umbrella project

          本文链接:https://www.haomeiwen.com/subject/sbhdkttx.html