我正在寻找一种方法来声明“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版本兼容的版本?
答案 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版本支持的功能,则该解决方案将无法运行。图书馆向后兼容的可能性更大。