我在项目中使用Ivy进行依赖管理。我想使用 SLF4J 进行日志记录。我添加了
<dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.5" />
它会下载 slf4j-log4j12 和 slf4j-jdk14 ,这会导致绑定冲突。我尝试使用
将其排除<dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.5">
<exclude module="slf4j-jdk14" />
</dependency>
但该模块仍在下载。我已将排除标记直接放在依赖项标记下,以排除此模块。为什么呢?
答案 0 :(得分:2)
解决此问题的最简单方法是创建全局排除:
<dependencies>
<dependency ..
<dependency ..
<dependency ..
<exclude org="org.slf4j" module="slf4j-jdk14"/>
</dependencies>
要发现传递依赖的来源,我建议始终生成常春藤报告:
<target name="resolve" description="Resolve dependencies using ivy">
<ivy:resolve/>
<ivy:report todir="${build.dir}/ivy-report" graph="false"/>
</target>