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

如何配置ivy来解析htmlunit的依赖关系

郎灿
2023-03-14

Ivy可以解决依赖关系的依赖关系,留档说可以使用模块配置来告诉Ivy配置取决于依赖关系的给定配置。

我想在一个项目中使用htmlunit,在它的sourceforge页面依赖信息中我找到了依赖设置,我把maven规范翻译成ivy:

<dependency org="net.sourceforge.htmlunit" name="htmlunit" rev="2.11"/>

我写了一个测试,编译了它,当尝试运行它时,我有一个ClassNotFoundException,我再次返回sourceforge,查找关于htmlunit依赖关系的信息,在这个页面上我找到了我要找的,所以我认为我需要的一切都是使用模块配置的魔力,所以我补充道:

<dependency org="net.sourceforge.htmlunit" name="htmlunit" rev="2.11" conf="test->compile; test->test"/>

但是我有这个错误,告诉我在net.sourceforge.htmlunit#htmlunit中找不到配置;2.11,“编译”

共有1个答案

韦泳
2023-03-14

编译器配置确实存在....

尝试重现您的问题时,我发现了以下错误消息:

[ivy:resolve]       ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]       ::          UNRESOLVED DEPENDENCIES         ::
[ivy:resolve]       ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]       :: net.sourceforge.htmlunit#htmlunit;2.11: 
    configuration not public in net.sourceforge.htmlunit#htmlunit;2.11: 'test'......

当ivy将Maven模块转换成配置时,它不允许解析传递性测试依赖。

在所有测试依赖项都设计为支持 htmlunit 模块的测试之后,这种推理有一定的逻辑。您的模块应该显式声明自己的测试依赖项。...

我通常建议将“测试”配置映射到远程“运行时”Maven范围,以便拾取其他jar:

<dependency org="net.sourceforge.htmlunit" 
            name="htmlunit" 
            rev="2.11" 
            conf="compile->default;test->runtime"/>

问题是htmlunit模块中没有“运行时”依赖项,这意味着这没有任何帮助。

总之,您没有指出缺少哪个类。如果它是像junit这样明显的东西,那么我建议这是应该在你的常春藤文件中明确声明的东西。

 类似资料:
  • 我正在使用文件,告诉sbt 0.13.5从哪个存储库中检索。该文件仅包含和一个存储库,其自定义布局与标准sbt存储库非常相似,并表示和可选字段。 在解决项目的依赖关系时,我注意到了一些奇怪的行为: 解析精确的依赖关系很好 如您所见,请明确提及回购布局模式。 我很困惑,因为解析器可以很好地处理通配符依赖项以外的任何东西。我试着翻遍常春藤文档,想弄清楚某些解析器(比如我使用的解析器)是否没有实现某些类

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

  • 基于文档(4.7.6 -了解特定的依赖关系),我们可以通过指定配置本身来了解特定的配置。在示例中,他们将配置< code>compile用作不推荐使用的配置。我试图重现相同的命令,将< code>build.gradle中的< code>compile配置替换为< code>implementation配置(正如我所得到的,我们不应该再使用< code>compile)。但是当我跑的时候: Gra

  • 我无法按配置名称检索预期的依赖项。我有一个共享库,我将使用以下 ivy 文件发布到本地存储库: 到目前为止,一切都很好。我发布了jar,如果我尝试通过配置检索它的依赖项,我会得到我期望的结果,运行时配置中有两个依赖项,提供的和测试配置中各有六个依赖项。当我试图检索依赖于的依赖项时,问题就开始了。我使用这个常春藤文件: 现在,如果我尝试检索配置,而不是获取jar、 0.05 my module,我会

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

  • 问题内容: 我的目标是将项目传递依赖项划分为几个不交叉的集合: 系统(j2ee容器中已经存在的jar;以明确的固定版本手动列出) 提供(将jar复制到j2ee容器;手动列出) 耳朵(jar包装在耳朵/耳塞里,其余) 我下面列出的当前解决方案有一些缺点: 必须逐一从耳朵会议中排除系统和提供的库 尚未明确排除的新的第三方传递性部门可能会意外出现 有时必须添加显式复制的库名称和版本 有什么办法可以消除这