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

FreeBSD Manual Pages

  
 
  

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 main-
       tenance.	For the	latter the tool	offers some advanced features like de-
       pendency	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 sup-
       port options which slightly modify their	behavior, but others  do  not.
       There  are two types of tasks: those that are available after installa-
       tion 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  be-
       cause  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	exten-
       sion  which  contains a precompiled OTP application with	all its	depen-
       dencies [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 run-
	       ning it.

       MIX_ENV
	       Allows specifying which environment should be used. The dev en-
	       vironment is used by default if none other has been specified.

	       Sometimes you have to use a particular set of configuration pa-
	       rameter	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 ver-
	       sion 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 14.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+14.3.quarterly>

home | help