2013-07-23 9 views
28

Wiele z moich słoików ma sprzeczne zależności przechodnie (wersje wielo sprężynowe). Chciałbym uniknąć dziedziczonych konfliktów wersji przez bezpośrednie zarządzanie wszystkimi zależnościami, czy można wyłączyć wszystkie przejściowe zależności w Gradle?Gradle, jak wyłączyć wszystkie przejściowe zależności

Wiem, że mogę dodać transitive = false do każdej z moich zależności, ale mam nadzieję, że istnieje prostszy sposób.

compile(group: 'org.springframework', name: 'spring', version: '2.5.2') { 
    transitive = false 
} 

Odpowiedz

41

skończyło się przy użyciu:

configurations.all { 
    transitive = false 
} 
+2

Innym rozwiązaniem jest poinformowanie Gradle o niepowodzeniu podczas konfliktów wersji i rozwiązanie * tych * jawnie (zamiast bezpośredniego zarządzania wszystkimi zależnościami przechodnimi). –

+0

Jeśli jesteś zadowolony z własnej odpowiedzi, powinieneś ją zaakceptować, aby pytanie zostało oznaczone jako odpowiedź. –

+1

@PeterNiederwieser musisz czekać 48 godzin, aby zaakceptować własną odpowiedź. –

6

Jeśli chcesz mieć tylko jeden blok konfiguracyjny dla wszystkich konfiguracji można użyć operatora rozprzestrzeniać kropka to wyrazić.

configurations { 
    // other configurations e.g. - compile.exclude module: 'commons-logging' 
    all*.transitive = false 
}