当前位置: 首页 > 知识库问答 >
问题:

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

汪茂
2023-03-14

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

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

  • 解析精确的依赖关系很好
    [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.+

如您所见,请明确提及回购布局模式。

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

共有1个答案

闾丘正志
2023-03-14

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

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

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

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

https://groups.google.com/forum/#!简单的构建工具https://groups.google.com/forum/#!简单的构建工具

 类似资料:
  • 我对ivy没有解析我的一些依赖关系有问题。以下是我如何重现这个问题的: 我在eclipse中有一个空的java项目。我已经在我的项目中添加了ivy.xml: 这工作正常,ivy能够解决和下载口水。 如果我将修订版更改为6.3.0.Final(http://mvnrepository.com/artifact/org.drools/drools-core/6.3.0.Final),它将不起作用,我看

  • Ivy可以解决依赖关系的依赖关系,留档说可以使用模块配置来告诉Ivy配置取决于依赖关系的给定配置。 我想在一个项目中使用htmlunit,在它的sourceforge页面依赖信息中我找到了依赖设置,我把maven规范翻译成ivy: 我写了一个测试,编译了它,当尝试运行它时,我有一个ClassNotFoundException,我再次返回sourceforge,查找关于htmlunit依赖关系的信息

  • 我遇到了一件奇怪的事。我用常春藤检索标签把罐子放在某处。如果我编写如下代码: 它工作正常。但是如果我添加如下内容: 它会抛出“无法解析依赖关系”。有什么建议吗?谢了。

  • 我有一个Apache Ivy(版本2.4.0)和Netbean IDE(8.0.2)的设置。我无法解决成熟的maven项目的依赖关系(例如:org.glassfish.jersey)。Apache Ivy成功地解决了更特定模块的依赖关系,如(org.glassfish.jersey.core)。 非工作示例: 工作实例: 常春藤。xml ivysettings。xml build.xml(只是IV

  • 几天来,当根依赖来自我的本地存储库时,我试图让apache常春藤解决我在ivy.xml中声明的依赖关系,但失败了。我的公共存储库(maven)中的根依赖关系工作得很好,甚至在我编辑ivy.xml指向本地存储库中模块的依赖关系时也能工作。但是本地存储库的传递依赖解决方案将不起作用。我检查了缓存中一个本地模块的解析ivy.xml,依赖部分已经被清除了!有什么我必须做的吗? 这是我的ivysetting