我正在使用~/.sbt/repositories
文件告诉sbt 0.13.5要从中检索哪些存储库。该文件仅包含local
和file://
存储库,其自定义布局与标准版本非常相似,并且代表sbtVersion
和scalaVersion
个可选字段。
在解决我的项目的依赖关系时,我注意到了奇怪的行为:
latest.integration
也可以正常使用x.y.+
的通配符分辨率不会查找任何内容,而是正在搜索文字模式。我收到错误的表格:[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布局模式。
我大多感到困惑,因为除了+
通配符依赖项之外,解析器的工作正常。我尝试在常春藤文档中查找某些解析器(例如我使用的file://
解析器)是否不实现某些类型的依赖关系解析,但似乎没有是一件事,所以我大部分都难过。知道我可以做些什么才能让它发挥作用,或者可能造成什么呢?
答案 0 :(得分: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