Abhängigkeitsupgrades analysieren und automatisieren

Sie möchten das Abhängigkeitsmanagement vereinfachen? Wenn Sie Ihre Prozesse um einige Tools ergänzen, können Sie die Abläufe beschleunigen und Bereiche identifizieren, die möglicherweise etwas mehr Aufmerksamkeit erfordern.

Automatische Versionsupgrades

In Android Studio werden veraltete Bibliotheksversionen im Editor hervorgehoben und es werden Schnellkorrekturen zum Upgrade angezeigt. Dazu müssen Sie jedoch regelmäßig alle Ihre Build-Dateien prüfen.

Es gibt eine Reihe von Drittanbietertools, mit denen Sie den Prozess automatisieren, Ihre Build-Dateien aktualisieren und optional einen Pull-Request für die Änderung erstellen können. Sie suchen die neuesten verfügbaren Versionen der einzelnen Abhängigkeiten und aktualisieren sie. Sie müssen die Ergebnisse jedoch vor der Veröffentlichung analysieren, um die Verhaltenskompatibilität zu gewährleisten. Beispiele:

Verfügbare Upgrades prüfen

Mit dem Gradle-Versions-Plug-in haben Sie mehr Kontrolle über das manuelle Upgrade. Wenn Sie die dependencyUpdates-Aufgabe über ./gradlew :dependencyUpdates ausführen, wird ein Bericht mit neueren Versionen Ihrer Bibliotheksabhängigkeiten generiert. Das kann hilfreich sein, um den Bibliotheksstatus zu prüfen und manuell festzulegen, welche Bibliotheken Sie zu einem bestimmten Zeitpunkt aktualisieren möchten.

Das kann besonders nützlich sein, wenn Sie anstelle eines Versionskatalogs einen benutzerdefinierten Ansatz zur Angabe Ihrer Abhängigkeitsversionen verwenden.

Änderungen an Abhängigkeiten melden

Das Upgraden der Versionen der Bibliotheken, die Sie direkt verwenden, kann sich viel stärker auf Ihre Anwendung auswirken. Jede von Ihnen verwendete Bibliothek kann andere Bibliotheksabhängigkeiten erfordern, was einen größeren transitiven Abhängigkeitsgraphen bildet.

Mit Dependency Guard werden die Änderungen in diesem Diagramm zwischen den Versionen Ihrer Anwendung oder Bibliothek angezeigt. Das kann ein unschätzbares Tool für die Upgrade-Analyse sein, da Sie so direkte und indirekte Upgrades berücksichtigen können.

Nicht verwendete und missbrauchte Abhängigkeiten erkennen

Wenn Sie Ihren Build in einem fehlerfreien Zustand halten, können Sie die Buildgeschwindigkeit verbessern und dafür sorgen, dass Ihre Anwendung und Bibliothek auf die erforderlichen Abhängigkeiten zugreifen können. Das Gradle-Plug-in zur Abhängigkeitsanalyse bietet Tools, mit denen Sie Ihre Abhängigkeiten prüfen und die korrekte Verwendung in Ihren Build-Dateien überprüfen können.

Zu den Berichten gehören:

  • Nicht verwendete Abhängigkeiten
  • Verwendete transitive Abhängigkeiten (Sie sollten diese explizit deklarieren, damit Ihre Anwendung darauf zugreifen kann, wenn Ihre direkten Abhängigkeiten sie nicht mehr verwenden)
  • Abhängigkeiten, die im falschen Umfang deklariert sind
  • Unnötige Verwendung einiger Plug-ins
  • GraphViz-Ansichten Ihrer Abhängigkeiten

Lizenzverwaltung

Die Entwickler der einzelnen Bibliotheken lizenzieren sie für Ihre Nutzung. Sie müssen sich an die Lizenzbedingungen halten oder können die Bibliothek nicht verwenden. Einige Lizenzen sind sehr moderat und erfordern oft nur eine Benachrichtigung über ihre Nutzung. Einige gelten als „viral“. Wenn Sie diese Bibliotheken verwenden, müssen Sie dieselbe Lizenz auf Ihre Anwendung oder Bibliothek anwenden.

Lizenzen können sich mit jeder Veröffentlichung ändern. Bei jedem Upgrade sollten Sie prüfen, ob die verwendeten Abhängigkeiten mit Ihrer Anwendung oder Bibliothek kompatibel sind.

Lizenzen melden

Mit dem Plug-in Gradle License Report (Gradle-Lizenzbericht) werden die Lizenzen aller Ihrer Abhängigkeiten gemeldet. Sehen Sie sich diesen Bericht unbedingt an, wenn Sie Abhängigkeiten aktualisieren. Prüfen Sie, ob die Lizenzen mit Ihren Anforderungen kompatibel sind und ob Sie die erforderlichen Nutzungsbedingungen erfüllen.

Lizenzhinweise generieren

Die Lizenzbedingungen erfordern häufig eine Mitteilung, auf die Nutzer einer Anwendung oder Verbraucher einer Bibliothek zugreifen können. Das Gradle-Lizenz-Plug-in generiert Daten oder HTML-Code, um solche Hinweise in Ihrer Anwendung anzuzeigen.

Dadurch werden viele Ihrer Meldepflichten automatisiert. Es werden jedoch keine Ressourcenlizenzen (z. B. Lizenzen für Schriftarten, Bilder oder Töne) oder Lizenzen für Code-Snippets gemeldet, die Sie aus dem Internet kopiert haben. Sie müssen diese Nutzung manuell erfassen und melden.