Provided by: elixir_1.14.0.dfsg-2_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
               path to Mix's home directory, stores configuration files and scripts used by Mix

       MIX_INSTALL_DIR
               Specifies directory where Mix.install/2 keeps installs cache

       MIX_INSTALL_FORCE
               Runs Mix.install/2 with empty install cache

       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.

       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] https://www.erlang.org/doc/man/code.html#id103620

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

SEE ALSO

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

AUTHOR

       Elixir is maintained by The Elixir Team.

       This manual page was contributed by Evgeny Golyshev.

       Copyright (c) 2012 Plataformatec.

       Copyright (c) 2021 The Elixir Team.

INTERNET RESOURCES

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

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

Debian                                            May 27, 2015                                            MIX(1)