如何用常春藤排除公共记录春季依赖性?

时间:2011-06-15 21:01:18

标签: dependencies slf4j ivy apache-commons-logging

我有一个使用常春藤进行依赖管理的ant的项目构建。我没有ivysetting文件,但是ivy.xml具有以下依赖项(我想使用spring与slf4j而不是commons日志记录):

<configurations>
  <conf name="compile" />
  <conf name="runtime" extends="compile"/>
</configurations>
<dependencies>
  <dependency org="org.springframework" name="spring-webmvc" rev="3.0.5.RELEASE" conf="compile->default">
    <exclude org="commons-logging" name="commons-logging"/>
  </dependency>
  <dependency org="org.slf4j" name="slf4j-api" rev="1.6.1" conf="compile->default" />
  <dependency org="org.slf4j" name="jcl-over-slf4j" rev="1.6.1" conf="runtime->default" />
</dependencies>

但是在解析编译配置时,commons-logging已解决。我还尝试在明确的spring-core依赖项上使用排除,但commons-logging始终放在编译类路径中。

我的错是什么?不是Not Using Commons Logging为maven所描述的吗?这是常春藤虫吗?需要我特别的设置吗?常春藤有什么缓存吗?有什么想法吗?

我使用ant 1.8.2和ivy 2.2.0,在Eclipse中使用IvyDE也存在同样的问题。

3 个答案:

答案 0 :(得分:24)

由于未知原因,您对<exclude />的使用似乎已被打破。我在我的电脑上尝试了类似的东西,以下工作:
试试the top-level exclude(直接位于<dependencies />

下)
    <dependencies>
      <dependency org="org.springframework" name="spring-webmvc" rev="3.0.5.RELEASE" conf="compile->default">
      </dependency>
      <dependency org="org.slf4j" name="slf4j-api" rev="1.6.1" conf="compile->default" />
      <dependency org="org.slf4j" name="jcl-over-slf4j" rev="1.6.1" conf="runtime->default" />
      <exclude org="commons-logging"/>
</dependencies>

我不知道为什么另一个不工作。 JIRA中存在一些关于排除和循环依赖的错误,但这似乎不适合这种情况。也许这是一个真正的错误。

答案 1 :(得分:0)

<exclude name="commons-logging"/>

如上所述,一般排除可能对你有用。

答案 2 :(得分:0)

使用模块而不是名称

sum