Мы используем пользовательское определение задачи, подобное этому, для копирования банок. Я понятия не имею, является ли это рекомендуемым способом сделать это - там ужасный collect
. Не стесняйтесь публиковать улучшения (или, если хотите, измените мой ответ в строке).
copyJarsFolder <<= (crossTarget in (Compile, packageBin)).apply(_ / "jars")
copyJars <<= inputTask { (argTask: TaskKey[Seq[String]]) =>
(copyJarsFolder, dependencyClasspath in Compile) map { (folder, cpEntries) =>
("mkdir -p " + folder).!
//
// find all dependencies
val jars = cpEntries.collect {
case attrFile if attrFile.metadata.keys.exists(_.label == "artifact") =>
// probably an external jar
attrFile.data
}
val copyCmd = jars.mkString("cp -p ", " ", " " + folder)
copyCmd.!
folder
}
}