sbt 升级到 0.13.13 后通用错误中的 sbt 映射
Posted
技术标签:
【中文标题】sbt 升级到 0.13.13 后通用错误中的 sbt 映射【英文标题】:sbt mappings in Universal error after sbt upgrade to 0.13.13 【发布时间】:2017-05-20 14:38:00 【问题描述】:mappings in Universal <++= (packageBin in Compile, sourceDirectory) map (_, src) =>
val confFiles = (src / "main" / "resources") ** "*.conf"
confFiles.get.map(file => file -> ("conf/" + file.name))
,
有效,但生成编译器警告
错误:Append.Values[Seq[(java.io.File, String)], sbt.Def.Initialize[sbt.Task[Seq[(java.io.File, String)]]]] 没有隐式成立, 所以 sbt.Def.Initialize[sbt.Task[Seq[(java.io.File, String)]]] 不能附加到 Seq[(java.io.File, String)] Universal ++= 中的映射(Compile 中的 packageBin,sourceDirectory) map (_, src) =>
【问题讨论】:
【参考方案1】:我是这样解决的
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))
【讨论】:
【参考方案2】:这个运算符非常混乱。尝试一个更简单的:=
,它在功能上是等效的:
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
【讨论】:
那行不通。 newMappings 创建一个引发错误的任务。以下是我的解决方法以上是关于sbt 升级到 0.13.13 后通用错误中的 sbt 映射的主要内容,如果未能解决你的问题,请参考以下文章
升级到 RC5 后,Angular2 通用错误找不到模块“@angular/compiler/src/template_parser”