[英]Elixir: Mix aliases, two `run` tasks in one alias
设置别名时:
defp aliases do
[
test_run: ["run -e 'IO.puts(\"One\")'", "run -e 'IO.puts(\"Two\")'"]
]
end
mix test_run
的结果应为
$ mix test_run
One
Two
但是它只执行第一个任务并打印
$ mix test_run
One
不知道这是否是预期的行为,但是在发布问题之前,我想确定一下。 这是重现错误的存储库: https : //github.com/wende/mix_run_twice
Mix不允许任务运行两次。 但是,您可以使用Mix.Task.reenable / 1再次运行它。
test_run: ["run -e 'IO.puts(\"One\"); Mix.Task.reenable(:run)'", "run -e 'IO.puts(\"Two\")'"]
您必须在第一次run
结束时重新启用该任务,否则它将永远无法进入第二个任务。 您不能执行以下操作:
["run -e 'IO.puts(\"One\")'", "run -e 'Mix.Task.reenable(:run)'"]
我建议您创建一个自定义的混合任务,为您要运行的每个任务调用Mix.Task.run/2 ,并在运行时重新启用。 Elixir 1.3通过提供执行rerun/2
reenable
并为任务run
的rerun/2
函数,将使此操作变得更加容易。 https://github.com/elixir-lang/elixir/pull/4394
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.