sbt update 没有解析存储库中的最新工件

Posted

技术标签:

【中文标题】sbt update 没有解析存储库中的最新工件【英文标题】:sbt update is not resolving the latest artifacts from repository 【发布时间】:2021-08-11 23:45:53 【问题描述】:

我的项目在build.sbt 文件中几乎没有快照依赖项,如下所示:

Seq("com.asr.project.myproject.urproject" %% "asr-app" % "0.0.0+")

我正在执行sbt update 以获取最新的依赖项。

在此之前,我最近发布了带有最新 SNAPSHOT 版本的工件,用于少数依赖项。 根据定义,sbt update 应该检查存储库中的最新依赖项版本,但它似乎并没有那样工作。

【问题讨论】:

【参考方案1】:

sbt 使用 coursier 插件管理依赖关系树,并且 coursier 插件维护缓存中工件的生命周期。 下载依赖项后,将不会在接下来的 24 小时内检查任何更新(默认)。

可以通过将COURSIER_TTL 设置为环境变量(例如export COURSIER_TTL=0s)来更改此行为。没有它单独运行sbt update 不会有任何效果。 https://get-coursier.io/docs/ttl

【讨论】:

【参考方案2】:

可能你需要的是:

libraryDependencies ++= Seq(
    "com.asr.project.myproject.urproject" %% "asr-app" % "0.0.+"
)

如Ivy revisions 中所述,或Fixed and dynamic revisions 中的详细信息。

【讨论】:

以上是关于sbt update 没有解析存储库中的最新工件的主要内容,如果未能解决你的问题,请参考以下文章

配置 SBT 以仅解析 Ivy 存储库中的 jar(而不是 war)

如何从 Maven 存储库中找到最新版本的工件

SBT 与 Maven Central - 在工件 url 中摆脱 Scala 版本

在 Jenkins 中使 SBT 缓存的工件本地化到工作区

如何仅发布 Nexus Staging 存储库中的部分工件

如何解决具有不同包装常春藤类型的sbt中的依赖关系?