Mix.Release
Определяет структуру выпуска и удобства для сборки релизов.
Краткое описание
Типы
Функции
- %Mix.Release{}
Структура Mix.Release имеет следующие поля только для чтения
- copy_app(release, app)
Копирует заданное описание приложения в релиз.
- copy_ebin(release, source, target)
Копирует директорию ebin по адресу
sourceвtarget, учитывая параметры релиза, такие как:strip_beams.- copy_erts(release)
Копирует ERTS, если релиз настроен на это.
- make_boot_script(release, path, modes, prepend_paths \\ [])
Создаёт скрипты запуска.
- make_cookie(release, path)
Копирует cookie в указанный путь.
- make_start_erl(release, path)
Создаёт файл start_erl.data с версиями ERTS и релиза.
- make_sys_config(release, sys_config, config_provider_path)
Создаёт структуру
sys.config.- rel_templates_path(release, path)
Находит путь к шаблону для релиза.
- strip_beam(binary, options \\ [])
Удаляет лишнюю информацию из файла beam для релиза.
Типы
application()
Спецификации
application() :: atom()
mode()
Спецификации
mode() :: :permanent | :transient | :temporary | :load | :none
t()
Спецификации
t() :: %Mix.Release{
applications: %{required(application()) => keyword()},
boot_scripts: %{required(atom()) => [{application(), mode()}]},
config_providers: [{module(), term()}],
erts_source: charlist() | nil,
erts_version: charlist(),
name: atom(),
options: keyword(),
overlays: [String.t()],
path: String.t(),
steps: [(t() -> t()) | :assemble, ...],
version: String.t(),
version_path: String.t() | {:from_app, application()}
} Функции
%Mix.Release{}
Структура Mix.Release имеет следующие поля только для чтения:
-
:name- имя релиза в виде атома -
:version- версия релиза в виде строки или{:from_app, app_name} -
:path- путь к корню релиза -
:version_path- путь к версии релиза внутри релиза -
:applications- карта приложений с их определениями -
:erts_source- исходный код erts в виде списка символов (или nil) -
:erts_version- версия erts в виде списка символов
Следующие поля можно изменять, сохраняя их типы:
-
:boot_scripts- карта скриптов запуска, где имя скрипта — ключ, а значение — список ключевых слов со всеми приложениями, которые входят в него, и их режимами -
:config_providers- список кортежей{config_provider, term}, где первый элемент — модуль, реализующий поведениеConfig.Provider, аterm— значение, переданное ему при вызовеConfig.Provider.init/1 -
:options- список других параметров релиза, заданных пользователем -
:overlays- список дополнительных файлов, добавленных к релизу. Если у вас есть пользовательский шаг, добавляющий дополнительные файлы в релиз, вы можете добавить эти файлы в поле:overlays, чтобы они также учитывались при последующих командах, таких как tar/zip. Каждый элемент в overlays — это относительный путь к корню релиза каждого файла -
:steps- список функций, которые принимают релиз и возвращают релиз. Также должен содержать атом:assemble, который является внутренней стадией сборки. Также может содержать атом:tarдля создания tar-архива релиза.
copy_app(release, app)
Спецификации
copy_app(t(), application()) :: boolean()
Копирует заданное описание приложения в релиз.
Предполагается, что приложение существует в релизе.
copy_ebin(release, source, target)
Спецификации
copy_ebin(t(), Path.t(), Path.t()) :: boolean()
Копирует директорию ebin по адресу source в target, учитывая параметры релиза, такие как :strip_beams.
copy_erts(release)
Спецификации
copy_erts(t()) :: boolean()
Копирует ERTS, если релиз настроен на это.
Возвращает true, если релиз был скопирован, иначе false.
make_boot_script(release, path, modes, prepend_paths \\ [])
Спецификации
make_boot_script(t(), Path.t(), [{application(), mode()}], [String.t()]) ::
:ok | {:error, String.t()} Создаёт скрипты запуска.
Он получает путь к файлу запуска без расширения, например, releases/0.1.0/start, и эта команда запишет start.rel, start.boot, и start.script в указанный путь, вернув {:ok, rel_path} или {:error, message}.
Скрипт запуска использует переменную окружения RELEASE_LIB, которая должна быть соответствующим образом установлена с --boot-var и указывать на каталог lib релиза.
make_cookie(release, path)
Спецификации
make_cookie(t(), Path.t()) :: :ok
Копирует cookie в указанный путь.
Если был указан параметр cookie, мы сравниваем его с содержимым файла (если он есть) и спрашиваем пользователя, хочет ли он перезаписать.
Если параметра нет, мы генерируем случайный — в первый раз.
make_start_erl(release, path)
Спецификации
make_start_erl(t(), Path.t()) :: :ok
Создаёт файл start_erl.data с версиями ERTS и релиза.
make_sys_config(release, sys_config, config_provider_path)
Спецификации
make_sys_config(t(), keyword(), Config.Provider.config_path()) ::
:ok | {:error, String.t()} Создаёт структуру sys.config.
Если есть поставщики конфигурации, то значение встраивается в конфигурацию приложения :elixir в sys_config, чтобы оно считывалось во время запуска и вызывало поставщиков.
Использует следующие параметры релиза для настройки своего поведения:
:reboot_system_after_config:start_distribution_during_config:prune_runtime_sys_config_after_boot
Если поставщиков конфигурации нет, он не изменяет sys_config.
rel_templates_path(release, path)
Находит путь к шаблону для релиза.
strip_beam(binary, options \\ [])
Спецификации
strip_beam(binary(), keyword()) :: {:ok, binary()} | {:error, :beam_lib, term()} Удаляет лишнюю информацию из файла beam для релиза.
Оставляет только значимые фрагменты, необходимые для работы виртуальной машины, отбрасывая документацию, отладочную информацию, информацию о компиляции и другое.
Точные фрагменты, которые сохраняются, не документированы и могут измениться в будущих версиях.
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.11.2/Mix.Release.html