使用

安装

只要需要使用 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 提供更大的包版本选择范围。