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 就有更多套件版本可使用。