0

我正在寻找一种声明“两个依赖项之间的依赖项”的方法。

例如,在我的模块中,我在 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 版本兼容的版本?

4

1 回答 1

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 版本支持的功能,则该解决方案将不起作用。库更有可能向后兼容。

于 2013-09-10T21:09:32.923 回答