Kitaplığınızı yükleyin

Kitaplığınıza erişim izni vermek için bir depo seçmeniz gerekir. Bu sayfada, bir ve Maven Publish Eklentisi.

Kitaplığınızı yüklemeden önce kitaplığınızı ve gerekli tüm adımları yayın varyantları veya test armatürleri gibi.

Depo türü seçin

Kitaplıklar AAR dosyaları olarak yayınlanır. Bu dosyalar, bayt kodu ve yerel kitaplıklar, bir Android manifesti ve kaynaklar. Paket kendisi herhangi bir kimlik, sürüm veya bağımlılığın kitaplıklar.

AAR'leri depo aracılığıyla sağlamak genellikle en iyi uygulamadır. AAR'yi doğrudan dağıtmaktan daha iyidir. Google kullanıcıların kitaplığın nereden geldiğini daha iyi anlamasına yardımcı olur name.aar dosyasıyla uğraşmak yerine önemli ayrıntılar sürümünü seçin. Bir kitaplığın daha yeni bir sürümüne geçerken yalnızca yeni sürümün gerekli olan bağımlılıklarının korunmasını sağlamak için Böylece, kullanıcıların bağımlılıkları manuel olarak güncellemesine gerek kalmaz.

Kitaplığınızı yayınlamak için kod deposu kullanmanın çeşitli avantajları vardır:

  • Gradle, kitaplığınızın bağımlılıklarını bağımlılık grafiği de bulabilirsiniz.
  • Gradle, kitaplığınızın tek bir sürümünün bağımlılıkta olmasını sağlayabilir kütüphanenizde geçişli olarak daha fazla öğe bulunuyorsa çakışmaları çözme farklı versiyonlarla bir kez.
  • Android Gradle Plugin (AGP), kitaplığınız Java 8 veya üstü dil özellikleri kullandığından sitenizin derleme sürelerini yardımcı olur.
  • Kitaplığınız, varyant yayınlama özelliğini kullanabilir ve test gibi özellikler içerebilir fikstür.

AAR'nin doğrudan dağıtılması kullanıcılarınıza herhangi bir bilgi hakkında daha fazla bilgi edinin. Zaman veya bir kod deposuna yayınlama işlemini gerçekleştirdiğinde, dağıtım işlemi bir parçasıydı. Maven depoları için bu POM dosyasına gidin. Bu nedenle kitaplıkları depoları kullanır.

Depo türleri

Üç tür depo vardır:

  • Maven Central gibi ücretsiz çevrimiçi depolar herkesin yükleme yapmasına ve kitaplığı indir.
  • Giriş üzerinden erişim sağlayan özel depolar, veri depolarının kontrollü dağıtımına izin verir. özel kütüphaneler var.
  • Klasör tabanlı yerel depolar; kitaplıkların manuel indirme

Yerel, klasör tabanlı depoları kullanmak, kullanıcılarınıza AAR'ye manuel indirme bağlantısıyla veya AAR'yi e-postayla göndererek. Ana yalnızca AAR'yi değil, aynı zamanda sunulan ek bilgileri de kimlik, sürüm ve bağımlılıklar hakkındaki bilgileri içerir.

AAR'nizi içeren klasör tabanlı deponun zip dosyasını dağıttığınızda olduğunu unutmayın. Ardından kullanıcılarınız dosyanın içeriğini ayıklayabilir, ve Gradle’ı bu projeye yönlendirecektir. Bu andan itibaren, kullanıcılar Örneğin, kütüphaneye olan bir bağımlılığı Maven koordinatlarını kullanarak bildirir (ör. her biri farklı bir platforma sahipti ve bahsettiğimiz tüm avantajlardan anlatacağım.

Yayını oluşturma

Gradle Maven Yayınlama Eklentisi'ni kullanarak yayınlayın. Maven Yayınlama Eklentisi, yayınları bildirmenizi ve bu yayınları şurada yayınlamak için görevler oluşturur: ekleyebilirsiniz. Bu yayınlarda şu özelliklere sahip bir SoftwareComponent örneği kullanılır: derlemeyi yürüten eklenti, AGP veya java-library eklentisi.

AGP ile Maven yayınlama eklentisini çalıştırırken eklenti uygulandığında doğrudan bileşenleri oluşturulmaz. Bunun yerine oluşturulduğu tarih afterEvaluate() geri arama adımını oluşturur. Bu nedenle, yazılım bileşenini seçen yayın afterEvaluate() adımı sırasında da yapılandırılmalıdır.

Modül düzeyindeki build.gradle dosyasının aşağıdaki kod snippet'i, belirli bir varyant için singleVariant() veya multipleVariants():

Eski

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"])
      }
    }
  }
}

Yukarıdaki örnekte bileşenin adı (components.release) singleVariant() özelliklerinden birine verilen ada göre veya multipleVariants().

Bir yayını bildirdikten sonra hedef depo oluşturmanız gerekir.

Yerel depoda yayınla

Yerel depoda yayınlama, uzak depoya yayınlamaya çok depo bildirimi hariç diğer tüm kod depolarını kullanır. Önceki bölümü okuyun: oluşturmak için uzak depoda yayınlamayı öğrenin. varyant veya varyantları yayınlayan yayındır. Daha sonra, depo:

Eski

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"))
    }
  }
}

Bu işlem, Şunları içeren publishReleaseToMyRepoRepository yayının ve deponun adını belirtin. Bu görevi çalıştır konumdaki kod deposunu oluşturun. Bu örnekte kod deposu, derlemenin içinde oluşturulur repo dizini altında, projenin klasöründe bulabilirsiniz.

Deponun zip dosyasını otomatik olarak oluşturmak isterseniz bunun için aşağıdaki kodu kullanabilirsiniz:

Eski

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")
}

Bu kod, içeriği tüketen generateRepo adında bir Zip görevi oluşturur öğesinin durumunu sıkıştırır ve zip girişlerinin mylibrary adlı üst düzey klasör. Çıkış şunun altındadır: build/distributions