我正在使用~/.sbt/repositories
文件告诉sbt 0.13.5从哪个存储库中检索。该文件仅包含local
和file://
存储库,该存储库的自定义布局与标准sbt极为相似,并表示了sbtVersion
和scalaVersion
可选字段。
在解决项目的依赖项时,我注意到了奇怪的行为:
latest.integration
也可以正常工作x.y.+
的通配符没有找到,而是在搜索文字模式。我收到以下形式的错误:[警告] ==== myrepo:已尝试
[警告] file://path/to/my/repo/myorg/mypackage_2.10/[revision]/ivy- [revision] .xml
[info]解决了myorg#mypackage_2.10; 2.7.1。+ ...
找不到[警告]模块:myorg#mypackage_2.10; 2.7.1。+
如您所见,请明确提及 repo 布局模式。
我最困惑的是,解析器除了对
+
通配符依赖项以外的任何其他功能都可以正常工作。我试图四处浏览 Ivy 文档,以确定某些解析器(例如我正在使用的file://
解析器)是否未实现某些类型的依赖项解析,但这似乎不是问题,所以我很困惑。知道我能做些什么,或者可能是什么原因导致的吗? 最佳答案
我过去有类似的问题。我们有一个或多个将使用相同的Ivy2缓存构建的应用程序。如果在这些版本中使用通配符,有时会遇到无法正确解决依赖关系的情况。仅在使用通配符时才引起问题。其他一切都很好。
我们发现的问题是,在某些情况下,Ivy2缓存会损坏。通常,解决方案是从Ivy2缓存中删除有问题的库。然后,如果我们再次运行该构建,它将可以正常工作。
我最终发现了一个帖子,暗示Ivy2缓存上的某些操作不是线程安全的。 IE。在某些情况下,同时运行多个构建可能会破坏缓存。我们最终为所有build设置了自定义Ivy Cache文件夹。这解决了问题。
抱歉,找不到引导我走这条路的原始帖子,但是下面的帖子可能有些相关。
https://groups.google.com/forum/#!topic/simple-build-tool/eCOkACPjm9E
https://groups.google.com/forum/#!topic/simple-build-tool/wFXhJcngy9Y
关于scala - sbt/ivy无法解决文件系统解析器上的通配 Ivy 依赖项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25428309/