Ist es möglich, Gradle zu verwenden, um einen Baum von Abhängigkeiten zu erstellen?
Ich habe ein Projekt und möchte gerne alle Abhängigkeiten herausfinden, um es ein wenig mit Vorwärtsdeklarationen usw. bereinigen zu können.
Ist es möglich, Gradle zu verwenden, um einen Baum von Abhängigkeiten zu erstellen?
Ich habe ein Projekt und möchte gerne alle Abhängigkeiten herausfinden, um es ein wenig mit Vorwärtsdeklarationen usw. bereinigen zu können.
Wenn Sie Ihre Abhängigkeiten in einem Diagramm visualisieren möchten, können Sie das gradle-dependency-graph-generator Plugin verwenden.
Im Allgemeinen befindet sich die Ausgabe dieses Plugins im build/reports/dependency-graph Verzeichnis und enthält drei Dateien (.dot|.png|.svg), wenn Sie die Version 0.5.0 des Plugins verwenden.
Beispiel für ein Abhängigkeitsdiagramm in einer echten App (Schachuhr):
Für mich war es einfach ein Befehl
in build.gradle
plugin
hinzufügen
apply plugin: 'project-report'
und dann gehe zum cmd und führe folgenden Befehl aus
./gradlew htmlDependencyReport
Dies gibt mir einen HTML-Bericht WOW Html Bericht
Oder wenn Sie den Bericht in einer
Textdatei
möchten, um die Suche zu erleichtern, verwenden Sie den folgenden Befehl
gradlew dependencyReport
Das ist alles mein Herr.
Die Dinge haben sich in Gradle weiterentwickelt, daher glaube ich, dass diese Frage eine weitere Antwort verdient.
Seit Gradle 4.3 wurden "Build-Scans" eingeführt. Alle relevanten Informationen sind in den Gradle-Dokumenten verfügbar (1, 2). Für mich scheint dies jetzt der einfachste Weg zu sein, um Ihre Abhängigkeiten (und im Allgemeinen Ihren Build) auf eine klare, organisierte Weise zu überprüfen.
Sie sind sehr einfach zu erstellen, führen Sie einfach aus:
gradle build --scan
(oder ./gradlew build --scan
wenn Sie einen Wrapper verwenden)
Dies erzeugt einen zufällig generierten Link, unter dem Sie Ihren Scan sehen können. Wenn Sie diesen Link öffnen, geben Sie Ihre E-Mail-Adresse ein und erhalten die volle Kontrolle über den Link: z. B. können Sie ihn teilen oder löschen. Es enthält sehr viele Informationen über Ihren Build, nicht nur über Abhängigkeiten. Sie können Ihre Abhängigkeiten sehen, ihre Hierarchien, das Repository, aus dem sie bezogen wurden, aber auch viele andere Informationen über Ihren Build, nämlich seine Leistung (was bei großen komplexen Builds von Interesse ist), Ihre Tests, sogar Ihre Konsolenausgabe und Ihre Systemkonfiguration, welche JDK und JVM verwendet wurden, maximale Heap-Größe usw.
Das ist ein Screenshot von einem Mock-Projekt:
Ein Build-Scan ist eine gemeinsam nutzbare Aufzeichnung eines Builds, die Einblicke in das Geschehene und Warum bietet. Sie können einen Build-Scan unter scans.gradle.com kostenlos erstellen.
Beachten Sie jedoch, dass Informationen über Ihren Build-Prozess an die Gradle-Server gesendet werden. Sie haben die volle Kontrolle, um sie zu löschen, wenn Sie mit Ihrer Überprüfung fertig sind.
Sie können Build-Scans auch mit Gradle-Versionen vor 4.3 verwenden, Sie müssen nur das Scans-Plugin manuell in Ihr Build-Skript einfügen.
Bearbeiten:
Unter Berücksichtigung einiger Kommentare, einige zusätzliche Hinweise:
1) Es ist sehr schwierig, dies aus Versehen oder ohne Verständnis dafür zu tun, dass einige Informationen über Ihren Build online sein werden (privat für Sie, mit der Möglichkeit, sie zu löschen, aber immer noch online).
Wenn Sie gradle build --scan
ausführen, erscheint die folgende Meldung:
Das Veröffentlichen eines Build-Scans auf scans.gradle.com erfordert die Annahme der von Gradle definierten Nutzungsbedingungen
unter https://gradle.com/terms-of-service. Akzeptieren Sie diese Bedingungen? [Ja, Nein]
Sie müssen explizit Ja
schreiben und dann wird die Meldung fortgesetzt:
Build-Scan wird veröffentlicht...
https://gradle.com/s/a12en0dasdu
2) Mit Gradle Enterprise können Sie Build-Scans auf Ihren eigenen Servern hosten. Ich habe jedoch keine Erfahrung damit und mein vorgeschlagener Ansatz bezog sich auf die Standard-Gradle-Distribution, bei der Gradle-Server für Ihre Build-Scans verwendet werden.
3) Gradle selbst fördert die Build-Scans als Lösung für die meisten Ihrer Build-Probleme.
Für aktuelle Versionen von Gradle (ich habe es mit der Version 6.4.1 getestet):
gradle dependencies --configuration compileClasspath
oder wenn Sie den Gradle Wrapper verwenden:
gradlew dependencies --configuration compileClasspath
Beim Bauen für Android mit den Kompilierungsprofilen 'debug' und 'release' können die Konfigurationen debugCompileClasspath
und releaseCompileClasspath
anstelle von compileClasspath
verwendet werden.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.