首页 文章

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

提问于
浏览
6

我正在使用 ~/.sbt/repositories 文件告诉sbt 0.13.5要从中检索哪些存储库 . 该文件仅包含 localfile:// 存储库,其自定义布局非常类似于标准sbt,并且表示了 sbtVersionscalaVersion 可选字段 .

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

  • 解决确切的依赖项工作正常

  • latest.integration 也行得正常

  • 表单的通配符解析 x.y.+ doesn't 找到任何内容,而不是似乎在搜索文字模式 . 我收到表格的错误:

[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.+

如您所见,明确提及repo布局模式 .

我很困惑,因为除了 + 通配符依赖项之外,解析器的工作正常 . 我试着在常 Spring 藤文档中查找是否有某些解析器(比如 file:// 解析器我实现了某些类型的依赖解析,但那并没有让我感到困惑 . 任何想法我能做些什么才能让它工作,或者什么可能引起它?

1 回答

  • 2

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

    我们发现的问题是在某些情况下Ivy2 Cache会变得腐败 . 通常,解决方案是从Ivy2 Cache中删除有问题的库 . 然后,如果我们再次运行构建,它将工作 .

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

    对不起,我找不到引导我走这条路的原始帖子,但下面的帖子可能有些相关 .

    https://groups.google.com/forum/#!topic/simple-build-tool/eCOkACPjm9E https://groups.google.com/forum/#!topic/simple-build-tool/wFXhJcngy9Y

相关问题