1

我承认我希望 sbt 具有类似于ant的内置通用任务集

sbt 中似乎不存在像简单地复制单个任意文件这样的基本任务(或者他们和我错过了它)?

我最好的选择是只使用社区 ant 插件吗?这似乎有点错过了使用 sbt 的意义 :)

或者,是否有社区努力或其他东西来本地创建许多这些实用程序类型的任务?

(我正在使用 sbt 0.13。)

4

1 回答 1

4

如果你来自 Ant,sbt 可能会让你有点震惊,但如果你保持耐心,我相信你会非常喜欢它。

与 Ant 通过拼凑任务来完成任务不同,使用 sbt 在设置和任务之间创建依赖关系,而任务只是 Scala 代码。因此,如果您可以在 Scala 中做到这一点,那么您应该也可以在 sbt 中做到这一点。

对于复制文件等基本任务,请参阅sbt.IO对象和sbt.PathFinder类,它们File可以隐式转换为。这是一个复制一个文件的示例。

val someFileTask = taskKey[File]("describe it.")

someFileTask := {
  val src: File = baseDirectory.value / "data.txt"
  val out: File = baseDirectory.value / "data2.txt"
  IO.copyFile(src, out)
  out
}

将上面的内容放在 中,就可以通过在shell中build.sbt运行来执行了。someFileTask

于 2013-11-03T02:08:55.550 回答