编写一个 Mix 任务,在 deps.get 之后运行

Write a Mix task that runs after deps.get

有没有办法挂接到 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

您可以为此使用 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