我正在使用 ~/.sbt/repositories
文件告诉sbt 0.13.5要从中检索哪些存储库 . 该文件仅包含 local
和 file://
存储库,其自定义布局非常类似于标准sbt,并且表示了 sbtVersion
和 scalaVersion
可选字段 .
在解决我的项目的依赖关系时,我注意到了奇怪的行为:
-
解决确切的依赖项工作正常
-
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 回答
我过去遇到了类似的问题 . 我们有一个或多个应用程序,我们将构建所有使用相同的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