2017-01-05 4 views
0
mappings in Universal <++= (packageBin in Compile, sourceDirectory) map { (_, src) => 
    val confFiles = (src/"main"/"resources") ** "*.conf" 
    confFiles.get.map(file => file -> ("conf/" + file.name)) 
}, 

Работает, но генерирует предупреждение компилятора < ++ = устарел. Изменение оператора на ++ = генерирует ошибку компилятораsbt сопоставления в универсальной ошибке после обновления sbt до 0,13.13

error: No implicit for Append.Values[Seq[(java.io.File, String)], sbt.Def.Initialize[sbt.Task[Seq[(java.io.File, String)]]]] found, so sbt.Def.Initialize[sbt.Task[Seq[(java.io.File, String)]]] cannot be appended to Seq[(java.io.File, String)] mappings in Universal ++= (packageBin in Compile, sourceDirectory) map { (_, src) =>

ответ

0

Этот оператор очень запутан. Попробуйте простой := который функционально эквивалентен:

mappings.in(Universal) := { 
    // Dependency on packageBin (part of your previous definition). 
    packageBin.in(Compile).value 
    // Create the new mappings. 
    val confFiles = (sourceDirectory.value/"main"/"resources") ** "*.conf" 
    val newMappings = confFiles.get.map(file => file -> ("conf/" + file.name)) 
    // Append them manually to the previous value. 
    mappings.in(Universal).value ++ newMappings 
} 
+0

Это не будут работать. newMappings создает задачу, которая вызывает ошибки. Ниже, как я решил это – scout

0

Вот как я решил его

mappings in Universal ++= { (packageBin in Compile, sourceDirectory) map { (_, src) => 
val confFiles = (src/"main"/"resources") ** "*.conf" 
confFiles.get.map(file => file -> ("conf/" + file.name)) 
} 
}.value, 

Еще лучше

mappings in Universal ++= { 
val src = sourceDirectory.value 
val confFiles = (src/"main"/"resources") ** "*.conf" 
confFiles.get.map(file => file -> ("conf/" + file.name)) 
}