2015-01-05 12 views
15

Można uruchomić gradlew dependencies, aby dowiedzieć się o zależnościach zadań modułu. Czy istnieje sposób na znalezienie zależności przechodnich od zależności buildscript?Czy istnieje zadanie "zależności" programu Gradle dla zależności buildScript?

przykład: classpath 'com.android.tools.build:gradle:1.0.0' bezpośrednio zależy od:

com.android.tools.build builder 
com.android.tools.lint lint 
net.sf.proguard proguard-gradle 
tools.base project-test-lib 

Jak można zobaczyć na MVNRepository. Ale te artefakty mają swoje własne zależności. Czy istnieje sposób na ich znalezienie bez ręcznego przejścia całego drzewa zależności?

Jako wyjaśnienia, ścieżka klasy mówię jest określony przez:

buildscript { 
    repositories {} 
    dependencies { .... } 
} 

Odpowiedz

-1

Można użyć tego polecenia:

gradle dependencyInsight --dependency gradle 

Jest świetny samouczek autorstwa Udacity, Gradle for Android, ale możesz obejrzeć this video po więcej wyjaśnień.

+0

"Nie można wygenerować raportu na temat zależności, ponieważ konfiguracja wejścia nie została określona.", Spróbował dodać '--configuration classpath', ale nadal dał mi ten sam błąd. Próbowałem również "kompilacji" i "środowiska wykonawczego" bezskutecznie. Jakieś pomysły? (Gradle 3.5) – TWiStErRob

+1

Ta odpowiedź jest nieprawidłowa. Po pierwsze, jak wspomniano w powyższym komentarzu, zadanie 'dependencyInsight' wymaga podania nazwy konfiguracji za pomocą opcji' --configuration'. Po drugie, tylko konfiguracje projektu, a nie konfiguracje buildscript, są narażone na to zadanie. –

1
+0

Czy możesz podać przykład, jak z niego korzystać, aby uzyskać raport zależności buildscript? – atok

+0

Wystarczy dodać zadanie: zadanie allDepInsight (typ: DependencyInsightReportTask) << {} Następnie uruchom Gradle allDepInsight – Mark

+0

To powoduje następujący błąd: Wykonanie nie powiodło się dla zadania ': SdkTestApp: allDepInsight'. > Nie można wygenerować raportu o zależnościach, ponieważ konfiguracja wprowadzania nie została określona. Można go określić z wiersza poleceń, np .: ': SdkTestApp: allDepInsight - konfiguracja someConf - dependence someDep' – atok

27

Niestety nie ma sposobu, aby określić konfigurację kompilacji skryptu niejawne zadanie dependencies za pośrednictwem interfejsu CLI. Konieczne będzie jawne zdefiniowanie zadania typu DependencyReportTask skonfigurowanego za pomocą konfiguracji skryptu budowania.

task buildscriptDependencies(type: DependencyReportTask) { 
    configurations = [buildscript.configurations.classpath] 
} 

Aktualizacja:

Począwszy Gradle 2.10 można teraz uzyskać informacje na temat zależności buildscript poprzez

gradle buildEnvironment 
+0

Niestety, 'gradle buildEnvironment' wydaje się nie wyświetlać niczego dla rdzennych wtyczek. Na przykład dla 'apply plugin: 'application'' do zależności są wyświetlane, chociaż wtyczka' application' zależy od wtyczki 'java'. – sschuberth

+0

@sschuberth, jeśli po prostu wiesz, jakie wszystkie pluginy są używane przez kompilację, proponuję zbadać [buduj skany] (https://scans.gradle.com/s/pqarplj4ogagg/plugins). Na przykład https://scans.gradle.com/s/pqarplj4ogagg/plugins. –

+0

Skany kompilacji są usługami opartymi na chmurze publicznej, które działałyby tylko wtedy, gdy nie mam nic przeciwko ujawnianiu szczegółów na temat mojego kodu źródłowego/systemu kompilacji na otwartej przestrzeni, której czasami nie jestem.Jestem świadomy lokalnej wersji z Gradle Enterprise, ale naprawdę wolałbym coś, co działa "offline" i tworzy raport na moim dysku lokalnym. – sschuberth

Powiązane problemy