Scala sbt/ivy无法解析文件系统解析器上的通配符ivy依赖项

Scala sbt/ivy无法解析文件系统解析器上的通配符ivy依赖项,scala,sbt,ivy,Scala,Sbt,Ivy,我正在使用~/.sbt/repositories文件告诉sbt 0.13.5要从哪些存储库中检索。该文件仅包含local和一个文件://存储库,其自定义布局与标准sbt存储库非常相似,并表示sbtVersion和scalaVersion可选字段 在解决项目的依赖关系时,我注意到了一些奇怪的行为: 解决精确的依赖关系很好 最新版本。集成也可以正常工作 形式为x.y.+的通配符解析找不到任何东西,而是似乎在搜索文字模式。我发现表单中有错误: [警告]==myrepo:已尝试 [警告]file:/

我正在使用
~/.sbt/repositories
文件告诉sbt 0.13.5要从哪些存储库中检索。该文件仅包含
local
和一个
文件://
存储库,其自定义布局与标准sbt存储库非常相似,并表示
sbtVersion
scalaVersion
可选字段

在解决项目的依赖关系时,我注意到了一些奇怪的行为:

  • 解决精确的依赖关系很好
  • 最新版本。集成也可以正常工作
  • 形式为
    x.y.+
    的通配符解析找不到任何东西,而是似乎在搜索文字模式。我发现表单中有错误:
[警告]==myrepo:已尝试 [警告]file://path/to/my/repo/myorg/mypackage_2.10/[revision]/ivy-[revision].xml [信息]解决myorg#mypackage_2.10;2.7.1.+ ... [警告]未找到模块:myorg#mypackage_2.10;2.7.1.+ 如您所见,请明确提及回购布局模式


我很困惑,因为解析器可以很好地处理
+
通配符依赖项之外的任何东西。我试着翻遍常春藤文档,想弄清楚某些解析器(比如我使用的
文件://
解析器)是否没有实现某些类型的依赖项解析,但这似乎不是一件事,所以我大部分都被难倒了。你知道我能做些什么来让它工作吗,或者是什么导致了它吗?

我过去也遇到过类似的问题。我们将构建一个或多个应用程序,所有这些应用程序都使用相同的Ivy2缓存。如果在这些构建中使用通配符,有时会出现无法正确解析依赖关系的情况。它只会在我们使用通配符时产生问题。其他一切都很好

我们发现的问题是,在某些情况下,Ivy2缓存会损坏。通常,解决方案是从Ivy2缓存中删除有问题的库。然后,如果我们再次运行构建,它就会工作

我最终发现了一篇帖子,其中暗示Ivy2缓存上的某些操作不是线程安全的。即,在某些情况下,同时运行多个构建可能会损坏缓存。我们最终为所有构建设置了自定义常春藤缓存文件夹。这解决了问题

很抱歉,我找不到引导我走上这条道路的原始帖子,但下面的帖子可能有些相关


很有趣。你能在github上放一个小的可复制样品吗? [warn] ==== myrepo: tried [warn] file://path/to/my/repo/myorg/mypackage_2.10/[revision]/ivy-[revision].xml [info] Resolving myorg#mypackage_2.10;2.7.1.+ ... [warn] module not found: myorg#mypackage_2.10;2.7.1.+