2012-12-17 7 views
15

gegebenWie schließen Sie eine transitive Projektabhängigkeit in gradle

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

Das ist nicht richtig in gradle 1.3 funktioniert. (d. h. alle Abhängigkeiten sind aus dem Unterprojekt enthalten)

Ist das ein Fehler oder gibt es eine andere Syntax zum Ausschließen von Projektabhängigkeiten?

+3

ich einen Jira auf diese gefunden, die noch nicht angesprochen hat, aber es scheint eine Arbeit um zu sein, wie folgt: Fügen Sie zusätzliche Pars um Projekt wie folgt kompilieren (project (': subproject')) {transitive = false} - Ich benutze dies und es funktioniert für mich - nicht intuitiv aber effektiv –

+0

Dieser Kommentar sollte als Antwort markiert werden. Der unglückliche Aspekt davon ist, dass wenn Sie alle diese Projekte ausschließen, wenn Sie zufällig eine dieser Menge enthalten (weil Sie nur eine Teilmenge der Gläser in dieser Liste benötigen), wird Gradle Sie nicht lassen. Also für verrückte Projekte, die Spaß machen, nur durch etwas Einfaches. – Core

Antwort

29

Die gezeigte Syntax wird fügen Sie eine neue (sog dynamische) transitive Eigenschaft auf den Project Objekt, das, wenn nicht irgendwo anders verwendet wird, wird keine Wirkung haben. Sie erhalten eine Warnung, dass dynamische Eigenschaften veraltet sind, was ein Zeichen für einen möglichen Fehler im Build-Skript ist und in Gradle 2.0 nicht richtig funktioniert.

Die korrekte Syntax ist (wie Sie bereits erwähnt):

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

'Keine solche Eigenschaft: transitive für Klasse: org.gradle.api.internal.project.DefaultProject_Decorated' – MariuszS

+0

Syntax hat behoben, aber die Abhängigkeit auch transitiv zum übergeordneten Projekt. –

Verwandte Themen