常春藤:2个依赖关系之间的依赖关系

时间:2013-09-10 13:28:42

标签: ivy

我正在寻找一种方法来声明“2依赖关系之间的依赖关系”。

例如,在我的模块中,我在ivy.xml中有以下几行:

<dependencies>
    <dependency org="org.slf4j" name="slf4j-api" rev="${slf4japiversion}"/>
    <dependency org="ch.qos.logback" name="logback-classic" rev="1.0.13" conf="test->default"/>
</dependencies>

我的问题是logback-classic 1.0.13依赖于slf4j-api 1.7.5而我的模块依赖于1.6.6(slf4japiversion的值)。

我无法更改slf4japiversion,但将来可能会被其他人升级。

有没有办法声明对logback的依赖,以检索与我的slf4j-api版本兼容的版本?

1 个答案:

答案 0 :(得分:1)

您可以指定覆盖指令以强制解析特定版本的依赖项:

   <dependencies>
      <dependency org="org.slf4j" name="slf4j-api" rev="1.6.6" conf="compile->default"/>
      <dependency org="ch.qos.logback" name="logback-classic" rev="1.0.13" conf="runtime->default"/>

      <override org="org.slf4j" module="slf4j-api" rev="1.6.6"/>
   </dependencies>

降级依赖项时的警告。如果logback使用仅1.7.5版本支持的功能,则该解决方案将无法运行。图书馆向后兼容的可能性更大。