我承认我希望sbt能够内置与ant类似的一般任务集
看似基本的任务,例如简单地copy单个任意文件的能力似乎不存在于sbt中(或他们和我错过了它)?
我最好选择使用community ant plugin吗?这似乎有点忽略了使用sbt:)
或者,是否有社区努力或本地创建许多这些实用程序类型的任务?
(我正在使用sbt 0.13。)
答案 0 :(得分:4)
如果你是来自Ant,对你来说可能会有点震惊,但如果你保持耐心,我相信你真的很喜欢它。
与通过拼凑任务来实现事物的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
}
将上述内容放在build.sbt
中,您可以通过在shell中运行someFileTask
来执行它。