Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
MIX(1)			     General Commands Manual			  MIX(1)

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 mainte-
     nance. For the latter the tool offers some advanced  features  like  depen-
     dency 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 prob-
     lem.  Like  programs, many tasks accept input parameters and/or support op-
     tions which slightly modify their behavior, 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 di-
	     rectory 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 envi-
	     ronment is used by default if none other has been specified.

	     Sometimes you have to use a particular set of configuration parame-
	     ter 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 be-
	     tween 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  vari-
	     able  has	a  value  which consists of multiple paths, they must be
	     colon-separated (for Unix-like operating systems) or semicolon-sep-
	     arated (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 be-
	     longs 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

     Package manager: https://hex.pm

FreeBSD ports 15.quarterly	  May 27, 2015				  MIX(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mix&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help