mix deps
Перечисляет все зависимости и их состояние.
Зависимости должны быть указаны в файле mix.exs в одном из следующих форматов:
{app, requirement}
{app, opts}
{app, requirement, opts}
Где:
- app — атом
- requirement — требование
Versionили регулярное выражение - opts — список ключевых слов параметров
Например:
{: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 (если он ещё не был установлен) и загрузит пакет, подходящий для вашего проекта. Обратите внимание, что 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) или списком сред (например,[:dev, :test]):targets- зависимость доступна только для указанных целей. По умолчанию зависимость будет доступна во всех средах. Значение этого параметра может быть одной целью (например,:host) или списком целей (например,[:host, :rpi3]):override- если установлено вtrue, зависимость переопределит любые другие определения себя другими зависимостями:manager- Mix также может компилировать проекты Rebar, Rebar3 и makefile, а также извлекать подзависимости проектов Rebar и Rebar3. Mix попытается определить тип проекта, но его можно переопределить, установив этот параметр в:mix,:rebar3,:rebarили:make. В случае конфликтующих определений будет выбран первый менеджер из списка выше. Например, если зависимость найдена с менеджерами:rebar3и:rebarв разных частях дерева,:rebar3будет автоматически выбран. Вы можете найти менеджер, выполнивmix deps, и переопределить его, установив параметр:overrideв проекте верхнего уровня.:runtime- является ли зависимость частью приложений выполнения. Если ключ:applicationsне предоставлен вdef applicationв вашем файлеmix.exs, Mix автоматически включит все зависимости как приложение выполнения, за исключением случаев, когда указаноruntime: false. По умолчанию значение равно true.:system_env- перечислимый набор пар ключ-значение двоичных данных, которые будут установлены как переменные среды при загрузке или компиляции зависимости
Параметры Git (:git)
-
:git- URI репозитория Git -
:github- сокращение для указания репозиториев Git с GitHub, использует:git -
:ref- ссылка для отката (может быть веткой, хэш-кодом коммита или тегом) -
:branch- ветка Git для отката -
:tag- тег Git для отката -
:submodules- еслиtrue, инициализировать подмодули для репозитория -
:sparse- откатить одну директорию внутри репозитория Git и использовать её в качестве зависимости Mix. Для получения дополнительной информации, см. "sparse Git checkouts".
Если ваш репозиторий Git требует аутентификации, например, аутентификации по имени пользователя и паролю через HTTP-URL, это можно сделать с помощью конфигурации Git, сохранив правила доступа вне системы контроля версий.
git config --global url."https://YOUR_USER:YOUR_PASS@example.com/".insteadOf "https://example.com/"
Для получения дополнительной информации см. документацию git config: https://git-scm.com/docs/git-config#git-config-urlltbasegtinsteadOf
Параметры пути (:path)
-
:path- путь к зависимости -
:in_umbrella- еслиtrue, задаёт зависимость по пути, указывающую на "../#{app}", используя ту же среду, что и текущее приложение
Параметры Hex (:hex)
См. документацию по использованию Hex для параметров Hex.
Задача deps
mix deps задача перечисляет все зависимости в следующем формате:
APP VERSION (SCM) (MANAGER) [locked at REF] STATUS
Для зависимостей, удовлетворённых Hex, REF — контрольная сумма пакета.
Для зависимостей, удовлетворённых git, REF — имя объекта коммита, и может включать информацию о ветке или теге.
Поддерживаются следующие параметры:
-
--all- перечисляет все зависимости, независимо от указанной среды
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.12.0/Mix.Tasks.Deps.html