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