mix deps
混合代表
列出所有依赖项及其状态。
必须使用mix.exs
以下格式之一在文件中指定相关性:
{app, requirement}
{app, opts}
{app, requirement, opts}
其中:
- APP是一个原子
- 要求是
Version
需求或正则表达式
- 选项是选项的关键字列表。
例如:
{:plug, ">= 0.4.0"}
{:gettext, git: "https://github.com/elixir-lang/gettext.git", tag: "0.1"}
{:local_dependency, path: "path/to/local_dependency"}
默认情况下,使用Hex包管理器获取依赖关系:
{:plug, ">= 0.4.0"}
通过指定这种依赖关系,Mix会自动安装Hex(如果它以前没有安装)并下载适合您项目的软件包。
MIX还支持Git和路径依赖关系:
{:foobar, git: "https://github.com/elixir-lang/foobar.git", tag: "0.1"}
{:foobar, path: "path/to/foobar"}
在伞式依赖中也是如此:
{:my_app, in_umbrella: true}
当父项目发生变化时,路径和伞依赖关系会自动重新编译。虽然可获取的依赖关系(如正在使用的依赖关系):git
仅在读取/更新时才重新编译。
依赖项的版本预计将根据语义版本进行格式化,并且必须按照Version
模块。
备选方案
下面,我们将提供一个更详细的可供选择的内容。
依赖定义选项
:app
-当设置为false
不读取此依赖项的应用程序文件。默认情况下,将读取应用程序文件。
:env
- 环境(作为一个原子)运行依赖; 默认为:prod
:compile
- 一个命令(字符串)来编译依赖; 默认为一个mix
,rebar
或make
命令
:optional
- 将依赖项标记为可选项。在这种情况下,当前项目将始终包含可选依赖项,但依赖于当前项目的任何其他项目不会被强制使用可选依赖项。但是,如果其他项目本身包含可选依赖项,则此处指定的要求和选项也将应用。
:only
- 只有在给定的环境中才能使用依赖关系,这在声明dev-or-dependency依赖时很有用; 默认情况下,依赖关系将在所有环境中可用。此选项的值可以是单个环境(如:dev
)或环境列表(如[:dev, :test]
)
:override
-如果设置为true
依赖项将覆盖其他依赖项对自身的任何其他定义。
:manager
- Mix还可以编译Rebar,Rebar3和makefile项目,并可以获取Rebar和Rebar3项目的子依赖关系。混合将尝试推断项目的类型,但也可以使用此选项将其设置为被覆盖:mix
,:rebar3
,:rebar
或:make
。如果定义有冲突,上面列表中的第一位经理将被拿起。例如,如果在树的不同部分找到依赖关系,:rebar3
并且:rebar
管理员:rebar3
会自动选取这些依赖关系。您可以通过运行mix deps
并通过:override
在顶级项目中设置选项来覆盖管理器来查找管理器。
:runtime
-依赖性是否是运行时应用程序的一部分。默认为true
,它自动将应用程序添加到自动启动并包含在版本中的应用程序列表中。
Git options (:git)
:git
-Git存储库URI
:github
-从GitHub指定Git Repos的快捷方式,使用git:
:ref
- 对签出的引用(可能是分支,提交SHA或标签)
:branch
-Git分支机构结帐
:tag
-要结帐的Git标签
:submodules
-何时true
,初始化回购的子模块。
:sparse
-签出Git存储库中的单个目录,并将其用作混合依赖项。搜索“稀疏git结帐”以获得更多信息。
Path options (:path)
:path
-受抚养人的途径
:in_umbrella
- 何时true
设置指向“../#{app}”的路径依赖项,与当前应用程序共享相同的环境
DEPS任务
mix deps
任务以下列格式列出所有依赖项:
APP VERSION (SCM) (MANAGER)
[locked at REF]
STATUS
它支持以下选项:
--all
-检查所有依赖项,而不管指定的环境如何。
摘要
功能
run(args)
需要实现的任务run
,它接收命令行args的列表。
功能
run(args)
run(OptionParser.argv) :: :ok
需要实现的任务run
接收命令行args的列表。
回调实现Mix.Task.run/1
...