编写在deps.get之后运行的Mix任务

时间:2018-03-17 07:33:36

标签: build elixir mix

有没有办法挂钩Elixir的Mix内置任务,在另一个任务完成后执行任务?

我知道你可以做类似的事情。

defmodule Mix.Tasks.Other.Get
  use Mix.Task

  @shortdoc "Other dependencies?"
  def run(_) do
    Mix.Task.run("deps.get")
  end
end

但我有点想在mix deps.get考虑使用make来包装最有意义的命令之后立即运行任务。 (即make deps将同时运行mix deps.get然后mix other.get

1 个答案:

答案 0 :(得分:4)

您可以使用Mix alias

defmodule MyApp.MixProject do
  use Mix.Project

  def project do
    [
      app: :my_app,
      version: "1.0.0",
      aliases: aliases()
    ]
  end

  defp aliases do
    [
      "deps.get": ["deps.get", "custom.task"]
    ]
  end
end