12

我有一个使用 ivy 进行依赖管理的 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 也有同样的问题。

4

3 回答 3

24

由于未知原因,您对 的使用<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 中有一些关于排除和循环依赖的错误,但这似乎不适合这种情况。也许这是一个真正的错误。

于 2011-06-16T06:37:37.577 回答
2

使用模块而不是名称

<exclude org="commons-logging" module="commons-logging"/>

于 2017-08-18T21:35:53.880 回答
0
<exclude name="commons-logging"/>

放在上面作为一般排除可能对您更有效。

于 2013-06-20T01:37:34.497 回答