2011-06-15 253 views
9

我有一個使用ivy進行依賴管理的ant項目。我沒有ivysetting文件,但有以下依賴性的ivy.xml(我想用彈簧與SLF4J,而不是公共記錄的):如何排除春天常春藤日誌依賴性與常春藤?

<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有同樣的問題。

回答

22

由於未知原因,您對<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有關的一些錯誤排除和循環依賴,但似乎並不適合這種情況下,也許這是一個真正的錯誤。

+0

不,我看到在報告中共享記錄 - 並且必須在[行家回購]看看(http://mvnrepository.com/artifact/commons-logging/commons-logging )(這是在ibiblio默認解析器,沒有自己的常春藤庫) – 2011-06-16 07:49:50

+0

@Arne Burmeister我更新了答案。 – oers 2011-06-16 08:08:22

+0

Ups,我真的錯過了這個功能,謝謝! – 2011-06-16 20:20:33

0
`<exclude name="commons-logging"/> 

上面放一般排除可能更好地爲你。

0

使用模塊而不是名稱的

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