Provided by: elixir_1.9.1.dfsg-1.3_amd64 bug

NAME

     mix — The software project management tool

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 the mix 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_TARGET
             Allows specifying which target should be used. The host target is used by default if
             none other has been specified.

     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 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 to mix 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

     [1] http://www.erlang.org/doc/man/code.html#id103620

     [2] http://www.erlang.org/doc/design_principles/applications.html

SEE ALSO

     elixir(1), elixirc(1), iex(1)

AUTHOR

     Elixir is maintained by the Elixir Core Team.

     This manual page was contributed by Evgeny Golyshev.

     Copyright (c) 2012 Plataformatec.

INTERNET RESOURCES

     Main website: https://elixir-lang.org

     Documentation: https://elixir-lang.org/docs.html