table of contents
- buster 1.7.4-0.1
- buster-backports 1.9.1.dfsg-1~bpo10+2
- testing 1.10.3.dfsg-1.1
- unstable 1.10.3.dfsg-1.1
MIX(1) | General Commands Manual | MIX(1) |
NAME¶
mix
—
SYNOPSIS¶
mix |
[TASK] [project_name] |
elixir |
[OPTIONS] -S
mix [TASK]
[project_name] |
DESCRIPTION¶
mix
is intended for both organizing code into projects
and their maintenance. For the latter the tool offers some advanced features
like dependency management, packaging, preparing documentation, testing and so
on.
Have a look at the SYNOPSIS section and the
second way of running mix
it offers. The point is
that the tool is none other than the Elixir script, therefore it can be
invoked via elixir(1) in the same way as any other script.
It's useful when you want to run mix
with particular
options.
DEFINITIONS¶
All themix
functionality is represented by a set of
tasks. A task is a piece of code written in Elixir and
intended for solving a particular problem. Like programs, many tasks accept
input parameters and/or support options which slightly modify their behaviour,
but others do not. There are two types of tasks: those that are available
after installation this or that archive (local tasks) and those that are
offered by mix
(built-in tasks). The
run task will be executed by default if none other has been
specified.
In spite of the fact that the greater part of
mix
is tasks, the man page doesn't contain the help
information related to each of them because mix
is
self-descriptive. Thus, using the help task, you can get
both the full list of local/built-in tasks and the information related to a
particular task.
An archive, in terms of Erlang/OTP, is the ZIP file with the .ez extension which contains a precompiled OTP application with all its dependencies[1].
An application is an entity that helps to combine sets of components into a single unit to simplify their reusing in other systems[2].
ENVIRONMENT¶
MIX_ARCHIVES
- Allows specifying the directory into which the archives should be installed (see mix help archive.install). The ~/.mix/archives directory is used for this purpose by default.
MIX_DEBUG
- When set, outputs debug information about each task before running it.
MIX_ENV
- Allows specifying which environment should be used. The
dev environment is used by default if none other has
been specified.
Sometimes you have to use a particular set of configuration parameter values or perform particular steps when you compile or run a project (or in some other cases). The
mix
environments allow grouping values of configuration parameters and steps to switch between them by specifying the necessary environment via MIX_ENV. MIX_EXS
- Allows changing the full path to the mix.exs file (see
FILES section). The most obvious
use case is to have more than one copy of mix.exs in a
project, but it's worth noting that MIX_EXS should be used only if the
mix
environments (see above) are not enough to solve the problem. MIX_HOME
- Stores configuration files and scripts shared by multiple
mix
implementations.See the Mix.Utils.mix_home/0 function.
MIX_PATH
- Allows expanding the code path. If the MIX_PATH environment variable has a
value which consists of multiple paths, they must be colon-separated (for
Unix-like operating systems) or semicolon-separated (for Windows).
As has already been mentioned above, there are two types of tasks: local and built-in. These tasks are always visible for
mix
because the directories, in which they are located, are a part of code path. If a task belongs to neither the one type nor the other, MIX_PATH helps you say tomix
where it should search the task.Use the :code.get_path/0 function to get the list of paths which are a part of the code path by default and the Mix.Utils.mix_paths/0 function to get the list of paths specified in the MIX_PATH value.
MIX_QUIET
- When set, does not print information messages to the terminal.
FILES¶
- mix.exs
- Contains the most significant information related to the project, such as its name, version, list of dependencies and so on. As a rule, the file is named mix.exs and located at the top of the project's source tree, but you can change the full path to it using the MIX_EXS environment variable (see the ENVIRONMENT section).
- mix.lock
- Allows locking down the project dependencies with a proper version range before performing any updates. It is useful when you know that your project is incompatible with newer versions of certain dependencies. The file is located at the top of the project's source tree as well as mix.exs (see above).
REFERENCES¶
SEE ALSO¶
elixir(1), elixirc(1), iex(1)AUTHOR¶
This manual page contributed by Evgeny Golyshev.INTERNET RESOURCES¶
- Main website: http://elixir-lang.org
- Documentation: http://elixir-lang.org/docs.html
May 27, 2015 | Linux 4.19.0-10-amd64 |