gpt4 book ai didi

caching - cacheDirectory 在 0.13 中被弃用了……那么现在呢?

转载 作者:行者123 更新时间:2023-12-01 03:54:44 24 4
gpt4 key购买 nike

在 sbt 邮件列表上问过这个问题,但显然是 phased out

我创建了一个 project on github从吹走工件更新缓存目录中解决“sbt> clean”问题。
在 0.12.4 上运行良好,但在 0.13 中损坏,“sbt> update”后我的自定义更新缓存目录为空

相当于:

cacheDirectory <<= baseDirectory / "sbt-no-clean"

在0.13?我看到了 cacheDirectory已被弃用,我们将使用 streams反而。

SBT FAQ对于 0.13 有一个关于使用 FileFunction.cached 的部分,那是上面 1 个类轮的替代品吗?看起来不像

Streams 确实可以完成这项工作,但由于使用 cacheDirectory 的旧方法不再有效——好吧,从技术上讲,该属性已设置,但有些东西会覆盖它,因此它更像是一种删除而不是弃用功能——我已经换档并尝试使用 cleanKeepFiles :
cleanKeepFiles <<= (streams) map{s=> Seq(s.cacheDirectory)}

我得到一个返回类型不匹配,一个令人抓狂的,因为我不知道如何转向:
sbt.Def.Initialize[sbt.Task[Seq[java.io.File]]]

进入
sbt.Def.Initialize[Seq[java.io.File]]

想法赞赏,
谢谢

编辑
如果您使用 apply 而不是 map:
cleanKeepFiles <<= streams.apply{_.map(x=>Seq(x.cacheDirectory))}

然后你得到:
sbt.Task[Seq[java.io.File]]

这似乎越来越近了,但是编译器想要:
Seq[java.io.File]
cleanKeepFiles类型为 SettingKey[Seq[File]]
我对如何获得 SettingKey[Seq[File]] 感到非常困惑超出流的类型: TaskKey[TaskStreams]

最佳答案

完全忘记了发布这个问题,幸好解决方案非常简单:

cleanKeepFiles <+= base / pathToCacheDir

这可以防止 SBT 在每次清理时吹走 deps 缓存,这将清理/编译周期缩短几秒钟——一个不错且简单的胜利,就像我们能够在 SBT <= 0.12.4 中使用 cacheDirectory 一样

关于caching - cacheDirectory 在 0.13 中被弃用了……那么现在呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18299310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com