2012-12-17 23 views
15

danąJak można wykluczyć zależność projektu przechodnia w Gradle

dependencies { 
    compile project(':subproject') { 
     transitive = false 
    } 
} 

nie działać prawidłowo w Gradle 1.3. (tzn. wszystkie zależności są zawarte w podprojekcie)

Czy jest to błąd, czy też istnieje inna składnia do wykluczania zależności projektu?

+3

znalazłem Jira na to, że nie została jeszcze skierowana, ale nie wydaje się być obejść w następujący sposób: dodać dodatkowe parens całym projekcie w następujący sposób kompiluj (project (': subproject')) {przechodni = false} - Używam tego i działa on dla mnie - nie jest intuicyjny, ale efektywny. –

+0

Ten komentarz powinien być zaznaczoną odpowiedzią. Niefortunnym aspektem jest to, że gdy wykluczysz wszystkie projekty, które znikną, jeśli zdarzy ci się dołączyć jeden z tych zestawów (ponieważ potrzebujesz tylko podzbioru słoików z tej listy) gradle nie pozwolą ci. Więc dla szalonych projektów baw się dobrze, wyłączając dep przez dep, po to, by zrobić coś prostego. – Core

Odpowiedz

29

Pokazany składnia doda nowe (tzw dynamiczny) transitive własności do obiektu Project, który, o ile używany gdzieś indziej, nie będą miały żadnego wpływu. Otrzymasz ostrzeżenie, że właściwości dynamiczne zostały wycofane, co jest oznaką potencjalnej pomyłki w skrypcie kompilacji i zakończy się niepowodzeniem w Gradle 2.0.

Poprawna składnia jest (jak już wspomniano):

dependencies { 
    compile(project(':subproject')) { 
     transitive = false 
    } 
} 
+2

'Brak takiej właściwości: przechodnia dla klasy: org.gradle.api.internal.project.DefaultProject_Decorated' – MariuszS

+0

składnia została naprawiona, ale zależność również przechodnia dla projektu nadrzędnego. –

Powiązane problemy