使用build.sbt中的参数自定义子项目的运行任务?

时间:2014-01-28 20:33:37

标签: scala sbt

我的项目中有一个名为oppenheimer的子项目。从sbt控制台运行这个项目非常简单。

[myproject] $ oppenheimer/run

我也可以传递一个命令行参数:

[myproject] $ oppenheimer/run migrate
[myproject] $ oppenheimer/run clean

如何从build.sbt执行此操作?是否可以定义执行此操作的任务?这样就足够了:

val customMigrate = ...
val customClean = ...

这样我就可以在项目的其他地方使用它,例如:

(test in Test) <<= (test in Test).dependsOn(customMigrate)

1 个答案:

答案 0 :(得分:4)

答案在sbt FAQ部分"How can I create a custom run task, in addition to run?"中给出。基本上是:

lazy val customMigrate = taskKey[Unit]("custom run task")

fullRunTask(customMigrate, Test, "foo.Main", "migrate")