Для сб. 0,7.x:
Насколько я знаю, по умолчанию ничего не реализовано. Тем не менее, вы можете использовать SBT FileUtilities.
Попробуйте поэкспериментировать со следующим примером, который копирует вашу банку с артефактом в папку tmp, архивирует папку и удаляет ее. Это должно быть легко распространить на зависимых библиотек.
class project(info: ProjectInfo) extends DefaultProject(info) {
def distPath = {
((outputPath ##) / defaultJarName) +++ mainDependencies.scalaJars
}
private def str2path(str: String): Path = str
lazy val dist = task {
FileUtilities.copyFile((outputPath ##) / defaultJarName, "tmp" / "lib" / defaultJarName, log)
FileUtilities.zip(List(str2path("tmp")), "dist.zip", true, log)
FileUtilities.clean("tmp", log)
None
}
}
Следующие функции из FileUtilities
использовались выше:
def zip(sources: Iterable[Path], outputZip: Path, recursive: Boolean, log: Logger)
def copyFile(sourceFile: Path, targetFile: Path, log: Logger): Option[String]
def clean(file: Path, log: Logger): Option[String]
Их заявления должны быть самоочевидными.