Manuelles hinzufügen von aar mit Abhängigkeit pom/iml-Datei
Da kann ich nicht verwenden, ein eigenes maven, um meine Bibliothek, ich war das denken in teilen der aar und importieren in ein anderes Projekt.
Das problem kommt, wenn das aar-und jar-Dateien enthalten keine Abhängigkeit. Also sobald ich manuell importieren, der aar in android studio (mit Import .JAR/.AA Paket) es gibt keine Abhängigkeit, und ich muss manuell hinzufügen alle Abhängigkeiten wieder.
Ich bereits generierte eine pom-Datei durch ein gradle-task, obwohl ich finde keine Möglichkeit zum manuellen importieren an dem Projekt.
Auf dem Bau.gradle-Datei automatisch generiert, indem die "Import".JAR/.AA Paket" ist:
configurations.maybeCreate("default")
artifacts.add("default", file('TestSample_1.0.0.aar'))
Gibt es eine Möglichkeit zum hinzufügen von pom/iml-Datei zu? so etwas wie:
artifacts.add("default", file('pomDependencies.xml'))
- In meiner Erfahrung können Sie es nicht. Die Verwendung einer aar-Datei, müssen Sie die Abhängigkeiten manuell in Ihr zu bauen.gradle.
- Danke für deine Antwort @Gabriele Mariotti . Zwar habe ich eine Frage, weil die gradle kennt es, wenn es sich um die Erstellung von einem maven-repository, etwas wie das zu tun: kompilieren "com.lib.testsample:testSample:1.0.0"
- Mit einem maven-repo gradle sucht für die pom-Datei beschreibt die Abhängigkeiten. Aber mit einem Flachbild dir zu importieren, die die AVJ-Datei, die ich don T wissen, ein Weg, um den gleichen pom-Datei.
- Wenn Sie sagen
private maven
meinst du ein repo wie Nexus oder Artifactory? Sie können immer zu veröffentlichen, um ein Dateisystem-basiertes Repository als auch, wie bei Ihrer lokalen .m2 Verzeichnis und dann verbrauchen Sie Ihre aar aus einem anderen build auf der gleichen Maschine befinden, bekommen alle die Vorteile von transitiven Abhängigkeiten. Ist das etwas, das für Sie arbeiten würde? - Hi @RaGe, das ist interessant, so kann ich veröffentlichen Sie Sie auf ein lokales Dateisystem und dann jemand anderes nutzen kann das verteilte Verzeichnis, auf verschiedenen Maschinen, aber auch mit all den Abhängigkeiten?
- Nun, das ist genau das, was ich denke, aber lassen Sie mich versuchen, diese heraus zu sehen, dass es tatsächlich funktioniert, habe ich nicht ein aar zu produzieren-Projekt praktisch, werde versuchen, dies später am Abend und zu aktualisieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
1. Publishing
In Ihre aar-Projekt, fügen Sie
maven-publish
plugin und fügen Sie die erforderlichen plugin-Konfiguration.Paar Dinge zu beachten:
Verwenden wir ein benutzerdefiniertes maven Veröffentlichung, Sie haben also zu bestimmen, was veröffentlicht wird, mit der
artifact
KlauselWir haben zum generieren der pom selbst in den code oben bin ich mit allen compile config Abhängigkeiten, möchten Sie vielleicht, um sicherzustellen, dass alle configs, die Sie interessieren werden abgedeckt.
Läuft
gradle publish
veröffentlichen, um ein maven-repo-Struktur, um dierepo
Ordner, die Sie dann verbrauchen, von einem anderen Projekt.2. Mit veröffentlicht .aar
In einem anderen android-Projekt zu verwenden, die aar-veröffentlicht in #1:
Im top-level zu bauen.gradle:
fügen Sie den Pfad zu früheren repo als maven-repository. Beachten Sie, dass müssen Sie möglicherweise den vollständigen Pfad verwenden, da
$buildDir
hat einen anderen Wert für das Projekt. In Ihrer app erstellen.gradle:transitive=true
ist erforderlich für die zu Holen, die transitiven Abhängigkeiten von der pom-Datei.MavenPublication
wie der Fehler sagt, und wie mein code oben zeigt.