如何在使用slfj-log4j12时正确排除slf4j-jdk14?

如何在使用slfj-log4j12时正确排除slf4j-jdk14?

问题描述:

我在我的项目中使用常春藤进行依赖项管理。我想用SLF4J进行记录。我加如何在使用slfj-log4j12时正确排除slf4j-jdk14?

<dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.5" /> 

而且它的下载都SLF4J-log4j12SLF4J-JDK14,这会导致冲突的结合。我试图通过使用排除它

<dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.5"> 
    <exclude module="slf4j-jdk14" /> 
</dependency> 

但该模块仍然下载。我已经直接把排除标签下的依赖标签排除此模块。为什么?

+0

SLF4J-JDK14是不是slf4j-log4j12的依赖项。我怀疑slf4j-jdk14中有一些其他的依赖关系。 – Ceki 2013-04-10 07:34:36

+0

我也有这个想法。但不确定。谢谢:) – davidshen84 2013-04-10 08:10:31

+0

您是否尝试过运行'ant report'来获取常春藤报告,并看到在“Dependencies Overview”部分下,导致slf4j-jdk14被下载?它应该告诉你什么是依赖。 – 2013-04-10 08:43:38

来解决这个问题

最简单的方法是创建一个全局排除:

<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