从SBT 1.3.0开始,Coursier是默认的解析器引擎,因此我们从依赖项中删除了Coursier SBT插件。
在Coursier插件时代,我们使用COURSIER_TTL="5 min"来控制自动获取SNAPSHOT版本的频率,即使在开发过程中使用sbt ~test:compile时也是如此。
对于dependency SNAPSHOT项目,下面是以下输出:
sbt:hub> show isSnapshot
[info] common / isSnapshot
[info] true
[info] isSnapshot
[info] truesbt:hub> show packagedArtifacts
[info] Wrote C:\Users\Ehnalis\Projects\hub\common\target\scala-2.12\common_2.12-0.5.0-SN
APSHOT.pom
[info] Wrote C:\Users\Ehnalis\Projects\hub\target\scala-2.12\hub_2.12-0.5.0-SNAPSHOT.pom
[info] common / packagedArtifacts
[info] Map(Artifact(common, jar, jar, None, Vector(compile), None, Map(), None, false)
-> C:\Users\Ehnalis\Projects\hub\common\target\scala-2.12\common_2.12-0.5.0-SNAPSHOT.jar
, Artifact(common, src, jar, Some(tests-sources), Vector(test), None, Map(), None, false
) -> C:\Users\Ehnalis\Projects\hub\common\target\scala-2.12\common_2.12-0.5.0-SNAPSHOT-t
ests-sources.jar, Artifact(common, jar, jar, Some(tests), Vector(test), None, Map(), Non
e, false) -> C:\Users\Ehnalis\Projects\hub\common\target\scala-2.12\common_2.12-0.5.0-SN
APSHOT-tests.jar, Artifact(common, src, jar, Some(sources), Vector(compile), None, Map()
, None, false) -> C:\Users\Ehnalis\Projects\hub\common\target\scala-2.12\common_2.12-0.5
.0-SNAPSHOT-sources.jar, Artifact(common, pom, pom, None, Vector(pom), None, Map(), None
, false) -> C:\Users\Ehnalis\Projects\hub\common\target\scala-2.12\common_2.12-0.5.0-SNA
PSHOT.pom)
[info] packagedArtifacts
[info] Map(Artifact(hub, src, jar, Some(sources), Vector(compile), None, Map(), None, f
alse) -> C:\Users\Ehnalis\Projects\hub\target\scala-2.12\hub_2.12-0.5.0-SNAPSHOT-sources
.jar, Artifact(hub, jar, jar, Some(tests), Vector(test), None, Map(), None, false) -> C:
\Users\Ehnalis\Projects\hub\target\scala-2.12\hub_2.12-0.5.0-SNAPSHOT-tests.jar, Artifac
t(hub, jar, jar, None, Vector(compile), None, Map(), None, false) -> C:\Users\Ehnalis\Pr
ojects\hub\target\scala-2.12\hub_2.12-0.5.0-SNAPSHOT.jar, Artifact(hub, src, jar, Some(t
ests-sources), Vector(test), None, Map(), None, false) -> C:\Users\Ehnalis\Projects\hub\
target\scala-2.12\hub_2.12-0.5.0-SNAPSHOT-tests-sources.jar, Artifact(hub, pom, pom, Non
e, Vector(pom), None, Map(), None, false) -> C:\Users\Ehnalis\Projects\hub\target\scala-
2.12\hub_2.12-0.5.0-SNAPSHOT.pom)在本地.coursier目录中的hub\common_2.12\0.5.0-SNAPSHOT下有一个选中的文件,在使用~test:compile时,当另一个依赖于hub的项目中的代码发生更改时,该文件不会更新。
COURSIER_TTL在1.3.8中不起作用。是否有其他方法可以将SBT设置为频繁检查新的SNAPSHOT版本?
发布于 2020-03-20 23:09:17
尝试在build.sbt中设置forceUpdatePeriod持续时间
forceUpdatePeriod := Some(5 minutes)哪个控件
Duration after which to force a full update to occur因为根据docs的说法,运行update应该修复快照的问题
显式运行update。这通常会修复过期快照或本地发布的工件的问题。
编辑:尝试更新到sbt 1.3.9
更新到lm-coursier-shaded 2.0.0-RC6-2
2.0.0-RC6-2公开TTL配置的位置
One现在可以通过CoursierConfiguration调整TTL、详细级别、校验和和缓存策略,可以通过sbt中的csrConfiguration访问。
因此,尝试在build.sbt中进行设置
import scala.concurrent.duration.DurationInt
import lmcoursier.definitions.CachePolicy
csrConfiguration := csrConfiguration.value
.withTtl(1.minute)
.withCachePolicies(Vector(CachePolicy.LocalOnly))https://stackoverflow.com/questions/60723139
复制相似问题