scala - 如何在Sbt中配置ivy的锁策略

标签 scala sbt ivy

我需要配置 Ivy lock strategy在 sbt 构建中。

我试图放置 externalIvySettings(baseDirectory(_ / "ivysettings.xml"))Build.scala
ivysettings.xml:

<ivysettings>
  <settings defaultResolver="default"/>
  <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
  <lock-strategies>no-lock</lock-strategies>
</ivysettings>

但在这种情况下,sbt 无法解析依赖项(我想是因为解析器被解析器从 ivysettings 中屏蔽了)。

如何在 Build.scala 中配置锁定策略?

最佳答案

花了一些时间后,我找到了解决方案。我从 defaultSettings 复制粘贴了 ivyConfiguration 并用 None 替换了 GlobalLock 参数(我需要禁用锁定):

ivyConfiguration <<= (externalResolvers, ivyPaths, offline, checksums, appConfiguration, target, streams) map { (rs, paths, off, check, app, t, s) =>
        val resCacheDir = t / "resolution-cache"
        new InlineIvyConfiguration(paths, rs, Nil, Nil, off, None, check, Some(resCacheDir), s.log)
      }

这对我来说似乎是一种解决方法,但它确实有效。现在没有 Ivy 锁。
如果您知道如何,请帮助我改进解决方案,因为我是 sbt 的新手。

关于scala - 如何在Sbt中配置ivy的锁策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17194604/

相关文章:

scala - 如何在 sbt 程序集中包含测试类和测试依赖项

java - 将 Java 应用程序从 Java 8 迁移到 Java 11

c++ - ant cpptask 与 ivy

java - ZonedDateTime.parse 错误?

java - 无效或损坏的 sbt-launch-jar 文件

jar - 在 sbt 中添加 jar URL 作为依赖项的简单方法

grails - 使用 Ivy 将 jar 添加到Grails项目

Scala:两个相等类型之间的类型方差和模式匹配

scala - 如何测试 Scala 宏?

string - 斯卡拉 : cleanest way to recursively parse files checking for multiple strings