Bibliothek hochladen

Wenn Sie Zugriff auf Ihre Bibliothek gewähren möchten, müssen Sie ein Repository auswählen. Auf dieser Seite werden die Überlegungen zur Auswahl eines Repository-Typ und zeigt, wie eine Publikation mit dem Maven Publish-Plug-in.

Bevor Sie Ihre Bibliothek hochladen, bereiten Sie sie für veröffentlicht und alle erforderlichen Publikationsvarianten oder Test-Befestigungen.

Repository-Typ auswählen

Bibliotheken werden als AAR-Dateien veröffentlicht. Diese Dateien enthalten kompilierten Code wie folgt: Bytecode und native Bibliotheken, ein Android-Manifest und Ressourcen. Das Paket keine Identität, Version oder Abhängigkeiten von anderen Bibliotheken.

Es empfiehlt sich, automatisch angewendete Empfehlungen über ein Repository bereitzustellen, als die direkte Verteilung der AAE. Es hilft den Nutzenden, besser zu verstehen, woher die Bibliothek stammt So müssen Sie sich nicht mit einer name.aar-Datei ohne wichtige Details befassen, wie Version. Wenn du ein Upgrade auf eine neuere Version einer Bibliothek durchführst, verwende ein um sicherzustellen, dass nur die erforderlichen Abhängigkeiten der neueren Version hinzugefügt, damit Nutzer Abhängigkeiten nicht manuell aktualisieren müssen.

Die Verwendung eines Repositorys für die Veröffentlichung Ihrer Bibliothek hat mehrere Vorteile:

  • Gradle kann die Abhängigkeiten Ihrer Bibliothek automatisch zum Abhängigkeit Diagramm.
  • Gradle kann sicherstellen, dass sich nur eine einzige Version Ihrer Bibliothek in der Abhängigkeit befindet. Grafik, die Konflikte löst, wenn Ihre Bibliothek vorübergehend mehr als einmal mit verschiedenen Versionen.
  • Mit dem Android-Gradle-Plug-in (AGP) lässt sich das Dedugaring effizienter gestalten, wenn Ihre verwendet Java 8 oder höher, was die Build-Dauer für Ihre Nutzenden.
  • Sie können in Ihrer Bibliothek Varianten veröffentlichen und Funktionen wie „Test“ verwenden Ausstattung.

Durch die direkte Weitergabe von automatisch angewendeten Empfehlungen erhalten Nutzer keine Informationen hinsichtlich der Identität, Version oder Abhängigkeiten Ihrer Bibliothek. Wann? in einem Repository veröffentlichen, wird die Verteilung von einer separaten Datei gehandhabt, die des Repository-Mechanismus. Für Maven-Repositories ist dies der POM-Datei Daher wird dringend empfohlen, Bibliotheken mit statt AAR-Dateien manuell zu verteilen.

Arten von Repositories

Es gibt drei Arten von Repositories:

  • Mit kostenlosen Online-Repositories wie Maven Central kann jeder Daten hochladen und Bibliotheken herunterladen.
  • Private Repositories mit Zugang per Anmeldung ermöglichen eine kontrollierte Verteilung von private Bibliotheken.
  • Lokale, ordnerbasierte Repositories ermöglichen die Verteilung von Bibliotheken über manuell herunterladen.

Die Verwendung lokaler, ordnerbasierter Repositories ähnelt der Bereitstellung von mit einem manuellen Downloadlink zum AAE oder per E-Mail. Die wichtigsten dass Sie nicht nur die automatisch angewendeten Empfehlungen senden, sondern auch die zusätzlichen Informationen zu Identität, Version und Abhängigkeiten.

Sie verteilen eine ZIP-Datei des ordnerbasierten Repositorys mit Ihren automatisch angewendeten Empfehlungen. sowie die Metadaten. Die Nutzer können dann den Inhalt der Datei extrahieren, den und verweisen Sie Gradle auf das Projekt. Danach können die Nutzenden eine Abhängigkeit von der Bibliothek mithilfe von Maven-Koordinaten deklarieren, als in einem Online-Repository befinden und von allen genannten Vorteilen profitieren. zuvor.

Publikation erstellen

Verwenden Sie zur Veröffentlichung das Gradle Maven Publish Plugin. Mit dem Maven Publish-Plug-in können Sie Publikationen und Repositories und Aufgaben zur Veröffentlichung dieser Publikationen im Repositories. Diese Publikationen nutzen eine SoftwareComponent-Instanz, die das Plug-in, das den Build steuert, z. B. AGP oder java-library-Plug-in.

Wenn Sie das Maven Publish-Plug-in mit AGP ausführen, Komponenten werden nicht direkt beim Anwenden des Plug-ins erstellt. Stattdessen werden sie erstellt im afterEvaluate() -Rückrufschritts hinzu. Die Publikation, in der die Softwarekomponente ausgewählt wird, muss auch während des Schritts afterEvaluate() konfiguriert werden.

Mit dem folgenden Code-Snippet der Datei build.gradle auf Modulebene wird ein Publikation für eine bestimmte Variante, die mit singleVariant() erstellt wurde, oder multipleVariants():

Cool

publishing {
  publications {
    release(MavenPublication) {
      groupId = 'com.my-company'
      artifactId = 'my-library'
      version = '1.0'

      afterEvaluate {
        from components.release
      }
    }
  }
}

Kotlin

publishing {
  publications {
    register<MavenPublication>("release") {
      groupId = "com.my-company"
      artifactId = "my-library"
      version = "1.0"

      afterEvaluate {
        from(components["release"])
      }
    }
  }
}

Im vorherigen Beispiel lautet der Name der Komponente (components.release) basierend auf dem Namen, der entweder singleVariant() oder multipleVariants().

Nachdem Sie eine Publikation deklariert haben, müssen Sie ein Ziel-Repository erstellen.

In einem lokalen Repository veröffentlichen

Die Veröffentlichung in einem lokalen Repository ähnelt der Veröffentlichung in einem Remote-Repository Repository mit Ausnahme der Repository-Deklaration. Lesen Sie den vorherigen Abschnitt, Erfahren Sie, wie Sie in einem Remote-Repository veröffentlichen, um ein Publikation, in der die gewünschte Variante bzw. die gewünschten Varianten veröffentlicht werden. Erstellen Sie dann eine lokale Repository:

Cool

publishing {
  publications {
    release(MavenPublication) {
      ...
    }
  }
  repositories {
    maven {
      name = 'myrepo'
      url = layout.buildDirectory.dir("repo")
    }
  }
}

Kotlin

publishing {
  publications {
    register<MavenPublication>("release") {
      ...
    }
  }
  repositories {
    maven {
      name = "myrepo"
      url = uri(layout.buildDirectory.dir("repo"))
    }
  }
}

Dadurch wird eine Aufgabe mit dem Namen publishReleaseToMyRepoRepository mit den Namen der Publikation und den Namen des Repositorys. Diese Aufgabe ausführen , um das Repository für den angegebenen Speicherort zu generieren. In diesem Beispiel hat der Parameter Das Repository wird innerhalb des Builds generiert. des Projekts in einem repo-Verzeichnis.

Wenn Sie automatisch eine ZIP-Datei des Repositorys generieren möchten, führen Sie Verwenden Sie daher den folgenden Code:

Cool

tasks.register('generateRepo', Zip) {
  def publishTask = tasks.named('publishReleasePublicationToMyrepoRepository')
  from publishTask.map { it.getRepository().getUrl() }
  into 'mylibrary'
  archiveFileName.set('mylibrary.zip')
}

Kotlin

tasks.register<Zip>("generateRepo") {
  val publishTask = tasks.named(
    "publishReleasePublicationToMyrepoRepository",
    PublishToMavenRepository::class.java)
  from(publishTask.map { it.repository.url })
  into("mylibrary")
  archiveFileName.set("mylibrary.zip")
}

Mit diesem Code wird eine Zip-Aufgabe mit dem Namen generateRepo erstellt, die den Inhalt verarbeitet. der Veröffentlichungsaufgabe und komprimiert es. Dabei wird sichergestellt, dass sich die ZIP-Einträge in einem übergeordneten Ordner namens mylibrary erstellt. Die Ausgabe befindet sich unter build/distributions