Come posso copiare alcuni file di origine (ad esempio /src/main/html/*.html
) nella directory di output costruzione (ad esempio /target/scala-2.11/
) con SBT in modo che i file finiscono nella radice bersaglio e non nel classes
sottodirectory (che è quello che succede se aggiungo la directory di origine su unmanagedResourceDirectories
)?Come copiare alcuni file nella directory di destinazione build con SBT?
7
A
risposta
6
È possibile definire SBT risorse compito di copia di indirizzare directory:
lazy val copyRes = TaskKey[Unit]("copyRes")
lazy val root:Project = Project(
...
)
.settings(
...
copyRes <<= (baseDirectory, target) map {
(base, trg) => new File(base, "src/html").listFiles().foreach(
file => Files.copy(file.toPath, new File(trg, file.name).toPath)
)
}
)
e utilizzare questa attività in SBT:
sbt clean package copyRes
Qual è l'importazione per i file? Inoltre, ho provato a hardcode "target" come una stringa che rappresenta una directory relativa a baseDirectory, ma questo non sembra funzionare. – bbarker
java.nio.file.Files – Nyavro
Si noti inoltre che questo non è probabilmente ricorsivo. 'File.listFiles' restituisce solo i discendenti diretti. – VasyaNovikov