4

Ich erstellte eine Bibliothek 'LibA', die Abhängigkeiten zu vielen 3rd-Party-Bibliotheken wie RecyclerView, EventBus etc. hat. Wenn ich es in ein anderes Projekt als aar einfügen wollte, Bibliothek wurde erfolgreich aber Abhängigkeiten enthalten kam nicht in aar.Erstellen Sie eine Bibliothek mit Abhängigkeiten in android

Q1 Wie kann ich Abhängigkeiten in LibA einschließen, so dass, wenn ein anderes Projekt diese Bibliothek enthält, es sich nicht um interne Abhängigkeiten meiner Bibliothek kümmern sollte.

Q2 Wie verwaltet Gradle Abhängigkeiten von Bibliotheken, lädt es alle Abhängigkeiten auf einmal oder prüft zuerst, welche bereits im Hauptprojekt verfügbar sind?

Q3 Wenn jemand eine Bibliothek von jcenter enthält, bringt das alle Abhängigkeiten mit sich?

Jede Hilfe wird sehr geschätzt. :)

Antwort

2

Die aar Datei enthält nicht die verschachtelt (oder transitive) Abhängigkeiten und haben keine pom-Datei, die die Abhängigkeiten von der Bibliothek verwendet wird, beschreibt.

Wenn Sie eine AAR-Datei mit einem Repo flatDir importieren, müssen Sie die Abhängigkeiten auch in Ihrem Projekt angeben.

Q1 Wie kann ich Abhängigkeiten in LibA einschließen, so dass, wenn ein anderes Projekt diese Bibliothek enthält, es sich nicht um interne Abhängigkeiten meiner Bibliothek kümmern sollte.

Sie sollten eine Maven-Repository verwenden (Sie haben die Bibliothek in einem privaten oder öffentlichen Maven Repo veröffentlichen), werden Sie nicht das gleiche Problem haben.
In diesem Fall lädt Gradle die Abhängigkeiten mit der Pom-Datei herunter, die die Abhängigkeitenliste enthält.

Q2 Wie verwaltet Gradle Abhängigkeiten von Bibliotheken, lädt es alle Abhängigkeiten auf einmal oder prüft zuerst, welche bereits im Hauptprojekt verfügbar sind?

Gradle behandelt die Abhängigkeiten für Sie. Es fügt die gleiche Abhängigkeit nicht zweimal oder öfter hinzu.

Q3 Wenn jemand eine Bibliothek von jcenter hinzufügt, bringt das alle Abhängigkeiten mit sich?

Wie bereits erwähnt, hat die Abhängigkeit in diesem Fall eine Pom-Datei, die alle verschachtelten Abhängigkeiten beschreibt. Gradle lädt es automatisch herunter.

+1

Nur kleine Festsetzung in der Terminologie - "verschachtelt" sollte "transitiv" sein Ich denke –

+0

@EugenMartynov Ja. Nested ist in diesem Fall transitiv. –