21

SBT (0.12.2) プロジェクトにカスタム タスクがあります。aそれらを 、bおよび と呼びましょうc。したがって、SBT の対話モードにいるときは、入力するだけaで、関連するタスクaが実行されます。入力することもでき;a;b;c、3 つのタスクが順番に実行されます。同じように何かが;clean;compileするでしょう。インタラクティブ シェルからできることは、それらすべてを実行するためのエイリアスを作成することです: alias all=;a;b;c. 入力するとall、タスクが明確な方法で実行されます。私が達成しようとしているのは、プロジェクトの SBT 構成内にこのエイリアスを作成することです。

SBT ドキュメントのこのセクションではタスクを扱いますが、私が達成できたのは次のようなものだけでした。

lazy val a = TaskKey[Unit]("a", "does a")
lazy val b = TaskKey[Unit]("b", "does b")
lazy val c = TaskKey[Unit]("c", "does c")
lazy val all = TaskKey[Unit]("all", ";a;b;c")

lazy val taskSettings = Seq(
    all <<= Seq(a,b,c).dependOn
)

このアプローチで私が抱えている問題は、タスクが組み合わされているため、それらの実行がシーケンシャルとは対照的に並行して行われることです。これは私が達成しようとしていることです。alias all=;a;b;cでは、SBT 構成ファイル内のようなエイリアスを作成するにはどうすればよいでしょうか?

4

3 に答える 3