2013-11-14 142 views
14

如何忽略Gradle中的特定傳遞性依賴項?例如,許多庫(如Spring和...)都依賴於commons-logging,我想用SLF4J(及其jcl-over-slf4j橋)代替commons-logging如何忽略Gradle中所有依賴項的特定傳遞依賴項

在我的gradle腳本中是否有任何提及它的方法,而不是依賴於依賴於commons-logging的每個依賴項?

我在想一個腳本,迭代所有的依賴關係,並在它們上面添加一些exclude,有沒有更好的解決方案?那腳本怎麼樣?

+0

請嘗試解決策略: http://stackoverflow.com/questions/23124509/how-to-exclude-specific-jars-from-web-inf-lib/30393301#30393301 – smilyface

回答

18
configurations { 
    compile.exclude group: 'commons-logging' 
} 
+8

或者:' configurations.all {排除組:'commons-logging'}'。 –

+1

有什麼辦法排除組的特定版本? – JayKay

13

來到這裏有同樣的問題,但最終使用以下做一個實際的替換。爲了完整性而將其發佈。

configurations.all { 
    resolutionStrategy.eachDependency { 
     if(it.requested.name == 'commons-logging') { 
      it.useTarget 'org.slf4j:jcl-over-slf4j:1.7.7' 
     } 
    } 
} 
+1

在處理此類任務時,您的回答以及Gradle的優雅感。 –

+1

我想補充說的是,在此期間,新的Gradle版本已經出來,它有模塊替換。還沒有嘗試過,但它看起來好像他們可能會做同樣的事情。 – user2543253

相關問題