DEV Community

Cover image for Mix: Um Guia para Iniciantes sobre a Ferramenta de Build e Gerenciamento de Dependências do Elixir
Rafael Andrade
Rafael Andrade

Posted on

Mix: Um Guia para Iniciantes sobre a Ferramenta de Build e Gerenciamento de Dependências do Elixir

Introdução

O Mix é a ferramenta de build padrão do Elixir, projetada para automatizar tarefas comuns como criação de projetos, compilação, testes e gerenciamento de dependências. Embora seja semelhante a ferramentas como a CLI do dotnet, o Mix oferece maior extensibilidade e está profundamente integrado ao ecossistema do Elixir.

Recursos Principais

Criando um Projeto

Gere um novo projeto Elixir com um único comando:

mix new friends 
Enter fullscreen mode Exit fullscreen mode

Isso cria um projeto estruturado com um arquivo mix.exs no seu núcleo.

O Arquivo mix.exs

Este arquivo define as configurações do projeto, dependências e tarefas. Aqui está um exemplo mínimo:

defmodule Friends.MixProject do use Mix.Project def project do [ app: :friends, version: "0.1.0", elixir: "~> 1.18", start_permanent: Mix.env() == :prod, deps: deps() ] end def application do [extra_applications: [:logger]] end defp deps do [] # Dependências vão aqui  end end 
Enter fullscreen mode Exit fullscreen mode

Gerenciamento de Dependências

Adicionando Dependências

Edite a função deps no arquivo mix.exs:

defp deps do [ {:ecto_sql, "~> 3.0"}, {:postgrex, ">= 0.0.0"} ] end 
Enter fullscreen mode Exit fullscreen mode

⚠️ Nota: Ao contrário do npm ou cargo, o Mix não possui um comando como mix deps.add — edite o mix.exs manualmente.

Restaurando Dependências

mix deps.get # Busca as dependências  mix deps.compile # Compila-as  
Enter fullscreen mode Exit fullscreen mode

Atualizando Dependências

Atualize um pacote específico:

mix deps.update ecto_sql 
Enter fullscreen mode Exit fullscreen mode

Atualize todos os pacotes:

mix deps.update --all 
Enter fullscreen mode Exit fullscreen mode

O Mix usa um arquivo mix.lock para garantir versões consistentes em diferentes ambientes.

Fluxos de Trabalho Comuns

Compilando o Projeto

mix compile 
Enter fullscreen mode Exit fullscreen mode

Executando Testes

mix test 
Enter fullscreen mode Exit fullscreen mode

Estendendo o Mix

Aliases (Atalhos)

Os aliases do Mix são atalhos personalizados definidos no arquivo mix.exs para simplificar ou combinar tarefas repetitivas. Eles permitem:

  • Encadear múltiplos comandos do Mix em um só.
  • Criar fluxos de trabalho específicos para o projeto.
  • Simplificar processos complexos de build/teste/deploy.
def project do [ ..., aliases: aliases() ] end defp aliases do [ build_test: ["compile", "test"], "build:test": ["compile", "test"] ] end 
Enter fullscreen mode Exit fullscreen mode

Execute com:

mix build_test 
Enter fullscreen mode Exit fullscreen mode

Tarefas Personalizadas

Crie tarefas reutilizáveis (ex: lib/mix/tasks/hello.ex):

defmodule Mix.Tasks.Hello do @moduledoc "Exibe uma saudação: `mix help hello`" use Mix.Task @shortdoc "Imprime 'hello' no console" def run(_args) do IO.puts("hello") end end 
Enter fullscreen mode Exit fullscreen mode

Execute com:

mix hello 
Enter fullscreen mode Exit fullscreen mode

Por que o Mix se Destaca?

  • Extensível: Frameworks como Phoenix e Ecto adicionam suas próprias tarefas (ex: mix ecto.gen.repo).
  • Completo: Tarefas embutidas para testes, compilação e gerenciamento de dependências.
  • Comunidade Ativa: A maioria das bibliotecas Elixir se integra perfeitamente ao Mix.

Conclusão

O Mix é a espinha dorsal do desenvolvimento em Elixir. Sua simplicidade para tarefas comuns e flexibilidade para customização o tornam indispensável.

Próximos Passos:

Top comments (0)