一个人将如何覆盖libraryDependencies
?
我尝试过:
Keys.libraryDependencies in Compile := {
val libraryDependencies = (Keys.libraryDependencies in Compile).value
val allLibraries = UpdateDependencies(libraryDependencies)
allLibraries
}
这样似乎可行,当我添加打印语句时,allLibraries
是正确的。
但是,在接下来的步骤中,它似乎没有正确的值:
Keys.update in Compile := Def.taskDyn {
val u = (Keys.update in Compile).value
Def.task {
val allModules= u.configurations.flatMap(_.allModules)
log.info(s"Read ${allModules.size} modules:")
u
}
}.value
print语句只有几个模块,而不是我在上一步中添加的所有模块。
有人解决吗?谢谢 !
答案 0 :(得分:0)
所以我知道我的问题在哪里。
我无法正确理解settings
和tasks
的合作方式。
settings
仅在sbt
开始时评估一次。
和tasks
仅在sbt
启动需要它的任务/命令时被评估一次。
因此,您无法像这样读取并重写settings
。
这是如此令人费解,我什至wrote a whole article about it