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
Она поддерживает следующие опции:
-
--all- перечисляет все зависимости, независимо от указанной среды
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.11.2/Mix.Tasks.Deps.html