当前位置: 首页 > 知识库问答 >
问题:

SBT 1.3.8即使在增量编译时也能自动更新快照版本

范兴文
2023-03-14

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

在Coursier-plugin时代,我们使用coursier_ttl=“5分钟”来控制自动获取快照版本的频率,即使在开发期间使用sbt~test:compile时也是如此。

对于dependencysnapshot项目,以下是:

sbt:hub> show isSnapshot
[info] common / isSnapshot
[info]  true
[info] isSnapshot
[info]  true
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\common2.12\0.5.0-Snapshot下有一个检查过的文件,在使用~test:compile时,在依赖于hub的另一个项目中更改代码时,该文件不会更新。

coursier_ttl在1.3.8中无效。是否有其他方法来设置SBT以频繁检查新的快照版本?

共有1个答案

张承颜
2023-03-14

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

forceUpdatePeriod := Some(5 minutes)

它控制

Duration after which to force a full update to occur

因为根据运行update的文档,应该可以修复快照的问题

其中2.0.0-RC6-2公开了TTL配置

现在可以通过CoursierConfiguration(可通过SBT中的csrConfiguration访问)调整TTL、详细级别、校验和和缓存策略。

因此,请尝试在build.sbt中进行设置

import scala.concurrent.duration.DurationInt
import lmcoursier.definitions.CachePolicy

csrConfiguration := csrConfiguration.value
  .withTtl(1.minute)
  .withCachePolicies(Vector(CachePolicy.LocalOnly))
 类似资料:
  • 我在一个maven项目中使用Eclipse Neon.3中的Lombok 在执行更新Maven项目(Alt F5)时,一切都很好,但只要我更改任何文件并保存(自动生成),就会出现错误,即使用的Getter不存在。 插件安装正确,我可以看到行“龙目1.16.16版”舞蹈大象安装。https://projectlombok.org/“在Eclipse About Dialog中。我还可以在类的大纲中看

  • 问题内容: 我有一个带有SQL插入SQL Server 2005数据库的.net事务。该表具有一个身份主键。 当事务内发生错误时,将被调用。行插入将正确回滚,但是,下次我将数据插入表时,标识将增加,就好像从未发生过回滚一样。因此,本质上在同一性序列中存在缺口。有什么方法可以让该方法回收丢失的身份? 我不是用正确的方法吗? 问题答案: 如果您考虑一下,则自动递增号 不应 是事务性的。如果其他事务必须

  • 上游更新其实是很频繁的,时常同步一下最新源码,就可能会有新惊喜。 更新源码的方法与同步源码相同,再次执行 repo sync 即可。 同步完成后,一定要确保执行过 make clean,很多莫名其妙的错误都因为没有执行 clean。 每次开始编译前,都顺手检查一下 jack 服务是否在运行,如果在运行,就把它结束掉,以便腾出内存用于编译。 然后就可以再次编译了,同样是执行 brunch z2_pl

  • 我有一个表,它有,,和 在常规插入时自动递增。 的值介于1到10之间,因为有10个问题,但对表来说不是唯一的,并且依赖于列。 用于引用单独表中的报表。 我要实现的是,如果对于特定的没有冲突的,则插入新的记录。如果有冲突,则用新的

  • 问题内容: 当我从用户那里接收数据时,我每次都会验证输入的格式(PHP)。我唯一无法验证(或我不想)的是约束(例如外键)违规。我让DML引发并出错,并让数据库驱动程序引发异常。捕获它后,我只是通过MySQL的错误代码打印出一些错误消息。 问题是,即使插入失败,我仍然看到序列还在增长。我该如何预防呢? 问题答案: 这就是自动增量值和序列的工作方式。使用值时,如果事务失败,则不会回收该值,并且会回滚该

  • 每次我执行INSERT或UPSERT(ON CONFLICT UPDATE)时,每个表上的增量列都会增加之前的更新数量。 例如,如果我有这张表: 然后运行这些查询: 这是一个相当大的问题。我们运行的脚本每天处理100000个通知。这会在每一次插入之间产生大约10000行的间隙,所以我们可能从100行开始,但当我们达到1000行时,最后一行的主键ID值会自动增加到100000以上。 如果这种情况继续