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

Nat*_*ins 2 build elixir-mix elixir

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

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

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

  @shortdoc "Other dependencies?"
  def run(_) do
    Mix.Task.run("deps.get")
  end
end
Run Code Online (Sandbox Code Playgroud)

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

Pat*_*ity 5

您可以为此使用Mix 别名

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
Run Code Online (Sandbox Code Playgroud)