使用方式

安裝

Mix 將於需要使用 Hex 時自動提示您。如果您想手動安裝或更新 Hex,只需執行 $ mix local.hex

定義相依性

Hex 與 Mix 的相依性處理整合。相依性以 Mix 格式定義,且所有一般的 Mix 相依性指令都能使用。特別是,所有沒有 SCM (:git:path) 的相依性都將由 Hex 自動處理。Hex 相依性以下列格式定義

{:package, requirement}

版本 requirement 指定您允許的套件版本。requirement 可接受的格式,已記錄在 Version 模組 中。以下是 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 就有更多套件版本可使用。