首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SBT 1.3.8用于自动更新快照版本,即使在增量编译中也是如此

SBT 1.3.8用于自动更新快照版本,即使在增量编译中也是如此
EN

Stack Overflow用户
提问于 2020-03-17 21:11:51
回答 1查看 614关注 0票数 4

从SBT 1.3.0开始,Coursier是默认的解析器引擎,因此我们从依赖项中删除了Coursier SBT插件。

在Coursier插件时代,我们使用COURSIER_TTL="5 min"来控制自动获取SNAPSHOT版本的频率,即使在开发过程中使用sbt ~test:compile时也是如此。

对于dependency SNAPSHOT项目,下面是以下输出:

代码语言:javascript
复制
sbt:hub> show isSnapshot
[info] common / isSnapshot
[info]  true
[info] isSnapshot
[info]  true
代码语言:javascript
复制
sbt: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版本?

EN

回答 1

Stack Overflow用户

发布于 2020-03-20 23:09:17

尝试在build.sbt中设置forceUpdatePeriod持续时间

代码语言:javascript
复制
forceUpdatePeriod := Some(5 minutes)

哪个控件

代码语言:javascript
复制
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中进行设置

代码语言:javascript
复制
import scala.concurrent.duration.DurationInt
import lmcoursier.definitions.CachePolicy

csrConfiguration := csrConfiguration.value
  .withTtl(1.minute)
  .withCachePolicies(Vector(CachePolicy.LocalOnly))
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60723139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档