如何在sbt输入任务中定义参数的默认值?

时间:2016-08-11 16:20:03

标签: scala command-line sbt

我想在sbt中定义一个任务来刷新我的所有redis键。它目前看起来像这样:

lazy val flushRedis = inputKey[Unit]("Flush redis")
flushRedis := {
  val args: Seq[String] = spaceDelimited("<arg>").parsed
  s"redis-cli -h ${args(0)} -p ${args(1)} flushall" !
}

sbt 'flushRedis host port'完美无缺。

但是,我想要实现的是将主机和端口设置为可选,并使用未提供的参数的默认值填充。

例如,我使用flyway通过以下命令迁移我的远程数据库:

sbt flywayMigrate -Dflyway.url=... -Dflyway.user=... -Dflyway.password=...

并且在build.sbt中为url和user定义了默认值,如下所示:

flywayUrl := "url"
flywayUser := "user"

是否可以通过自定义任务完成类似的操作?我不介意做出重大改变,只要我得到效果。

0 个答案:

没有答案