Mix (build tool)

Mix
Original author(s)Anthony Grimes
Initial release2012; 12 years ago (2012)
Stable release
1.11.4 / 16 March 2021; 3 years ago (2021-03-16)[1]
Written inElixir
PlatformErlang
TypeBuild tool
LicenseApache License 2.0[2]
Websitehexdocs.pm/mix/Mix.html

Mix is a build automation tool for working with applications written in the Elixir programming language.[3][4] Mix was created in 2012 by Anthony Grimes, who took inspiration from Clojure's Leiningen. Soon after, Mix was merged into the Elixir programming language itself and to this day is one of the six applications that are part of the Elixir language. Mix provides functionality for creating, compiling, and testing Elixir source code and for managing dependencies and deploying Elixir applications.[5]

Mix tasks

Mix provides tasks to create, clean, build, compile, run, and test Elixir applications. For example, Mix may be used to create a new Elixir project, such as a new hello_world application. Running mix new hello_world will result in

$ mix new hello_world
* creating README.md
* creating .formatter.exs
* creating .gitignore
* creating mix.exs
* creating config
* creating config/config.exs
* creating lib
* creating lib/hello_world.ex
* creating test
* creating test/test_helper.exs
* creating test/hello_world_test.exs

Your Mix project was created successfully.
You can use "mix" to compile it, test it, and more:

    cd hello_world
    mix test

Run "mix help" for more commands.

Mix projects

Mix uses the information defined in a Mix Project to compile, build, and assemble the application. By convention, this information is typically managed in an Elixir script file named mix.exs. The file may include version information, dependencies, and other configuration information.

Application

As the Elixir build tool, Mix is used on applications that target the Erlang virtual machine (as opposed to the Java virtual machine or the .NET Common Language Runtime).[6] Mix is used with web applications built on the Phoenix framework.[7]

See also

References

  1. ^ "Releases - elixir-lang/elixir". Retrieved 25 April 2020 – via GitHub.
  2. ^ "elixir/LICENSE at master · elixir-lang/elixir · GitHub". GitHub. 23 October 2022.
  3. ^ "Technology Radar | Emerging Technology Trends for 2017 | ThoughtWorks". www.thoughtworks.com. Retrieved 2018-05-08.
  4. ^ "Introduction to Mix". elixir-lang.github.com. Retrieved 2018-05-03.
  5. ^ "Organising your Elixir project with Mix". Culttt. 2016-08-31. Retrieved 2018-05-03.
  6. ^ "The Erlang Runtime System". happi.github.io. Retrieved 2018-05-03.
  7. ^ "Mix Tasks · Phoenix". Phoenix. Retrieved 2018-05-03.