只要需要使用 Hex,Mix 就会自动提示您。如果您想手动安装或更新 Hex,只需运行 $ mix local.hex
。
Hex 集成了 Mix 的依赖项处理。依赖项在 Mix 的格式中定义,所有普通的 Mix 依赖项命令都可以使用。特别地,所有没有 SCM (:git
或 :path
) 的依赖项都会由 Hex 自动处理。Hex 依赖项以以下格式定义
{:package, requirement}
版本需求指定您允许的包版本。该需求接受的格式在 版本模块 中有说明。下面是一个示例 mix.exs
文件。
defmodule MyProject.MixProject do
use Mix.Project
def project() do
[
app: :my_project,
version: "0.0.1",
elixir: "~> 1.0",
deps: deps(),
]
end
def application() do
[]
end
defp deps() do
[
{:ecto, "~> 2.0"},
{:postgrex, "~> 0.8.1"},
{:cowboy, github: "ninenines/cowboy"},
]
end
end
有关依赖项的更多信息,请参见 Mix 文档。
:hex
:repo
mix hex.repo
任务进行配置。默认为全局 "hexpm"
仓库。:organization
mix hex.organization
任务进行配置。
$ mix deps.get
将获取尚未获取的依赖项。依赖项获取是可重复的,Mix 将在锁定文件中锁定依赖项的版本,以确保所有开发人员都将获得相同的版本(始终将 mix.lock
提交到版本控制)。$ mix deps.update
将更新依赖项并将更新后的版本写入锁定文件。
当 Mix 尝试获取未锁定的 Hex 包时,将执行依赖项解析以找到满足所有版本需求的包集。解析过程将始终尝试使用所有包的最新版本。由于依赖项解析的性质,Hex 有时可能无法找到兼容的依赖项集。这可以通过使用 $ mix deps.unlock
解锁依赖项来解决,更多解锁的依赖项会为 Hex 提供更大的包版本选择范围。