Dari JCenter ke Maven atau posting singkat tentang penerbitan multiplatform Kotlin

Baru-baru ini, ada kabar bahwa JCenter akan segera ditutup dan bagaimana kami dapat terus hidup di sana tidak dikatakan kami perlu pindah ke tempat lain. Bagi saya pribadi, MavenCentral sudah menjadi kandidat utama, karena saya sudah lama menerbitkan di sana, meski setahun terakhir ini saya terbiasa melakukannya melalui Bintray. Dalam posting ini, akan ada informasi singkat tentang yang saya temui di bawah air dan bagaimana saya harus mengubah skrip penerbitan saya.





PASAL INI TIDAK MEMILIKI INFORMASI APA PUN TENTANG PUBLIKASI TARGET NATIVE . Meski demikian, semoga informasi dalam artikel ini bermanfaat bagi Anda.





Mungkin udah aja

Memang, ada beberapa artikel tentang topik ini ( 2019 dan 2021 ), tetapi saat ini saya belum melihat satu artikel pun lengkap dengan informasi tentang skrip penerbitan (mungkin, saya hanya melihat di tempat yang salah). Digunakan pada sebagian besar informasi dapat diambil dari sebuah artikel (pendaftaran Sonatype, pendaftaran domain, membuat kunci GPG dan tujuannya dan tidak hanya). Berikut ini adalah skrip universal untuk menerbitkan proyek multiplatform:





apply plugin: 'maven-publish'
apply plugin: 'signing'

task javadocsJar(type: Jar) { // ,  javadocs     
    classifier = 'javadoc'
}

publishing {
    publications.all {
        artifact javadocsJar

        pom {
            description = "  "
            name = "${project.name}"
            url = "https://github.com/Owner/Project" //     ,     github

            scm {
                developerConnection = "scm:git:[fetch=]/*   .git */[push=]/*  */"
                url = "/*    */"
            }

            developers {
                    developer {
                        id = "ID "
                        name = " "
                        email = "email "
                    }
            }

            licenses {
                    license {
                        name = " "
                        url = "  LICENSE "
                    }
                
            }
        }
        
        repositories {
            //   Maven Central
            maven {
                name = "sonatype"
                url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
                credentials {
                    username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER')
                    password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD')
                }
            }
        }
    }
}

signing {
    useGpgCmd()
    sign publishing.publications
}

      
      



Anda dapat melihat contoh skrip ini di sini . Saat berpindah dari JCenter, saya mengalami kesalahan berikut:





  • maven url uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")







  • publishing.publications ( , Java ( Android) )





gradle SONATYPE_USER



SONATYPE_PASSWORD



. :





  • ~/.gradle/gradle.properties







  • ( CI )





, . :





$ ./gradlew --no-parallel publishAllPublicationsToSonatypeRepository
      
      



--no-parallel



di sini digunakan untuk alasan bahwa jika Anda menggunakan pembangunan paralel dari proyek (bendera --parallel



atau org.gradle.parallel=true



di gradle.properties



), maka tanpa bendera menonaktifkan pembangunan paralel, publikasi akan dilakukan ke beberapa repositori, yang mungkin memerlukan ketidakmampuan untuk menutup dan menerbitkan rilis (ini juga ditulis di artikel di atas).





Bukan sebuah kesimpulan

Menerbitkan perpustakaan itu sulit, jadi saya dengan tulus berharap yang terbaik untuk Anda dalam upaya ini. Jika ada komentar / tambahan atau hal lain yang bisa membantu orang lain, tulis di kolom komentar agar saya menambahkan catatan tentang hal ini ke artikel. Semoga berhasil.








All Articles