如何在使用slfj-log4j12时正确排除slf4j-jdk14?
问题描述:
我在我的项目中使用常春藤进行依赖项管理。我想用SLF4J进行记录。我加如何在使用slfj-log4j12时正确排除slf4j-jdk14?
<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>
但该模块仍然下载。我已经直接把排除标签下的依赖标签排除此模块。为什么?
答
来解决这个问题
最简单的方法是创建一个全局排除:
<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>
+0
谢谢。不幸的是,我正在使用Eclipse的IvyIDE插件。我不知道如何从中生成报告。你有什么主意吗? – davidshen84 2013-04-11 01:32:13
SLF4J-JDK14是不是slf4j-log4j12的依赖项。我怀疑slf4j-jdk14中有一些其他的依赖关系。 – Ceki 2013-04-10 07:34:36
我也有这个想法。但不确定。谢谢:) – davidshen84 2013-04-10 08:10:31
您是否尝试过运行'ant report'来获取常春藤报告,并看到在“Dependencies Overview”部分下,导致slf4j-jdk14被下载?它应该告诉你什么是依赖。 – 2013-04-10 08:43:38