我想在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"
是否可以通过自定义任务完成类似的操作?我不介意做出重大改变,只要我得到效果。