我有一个使用常春藤进行依赖管理的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也存在同样的问题。
答案 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