JCenterからMavenへ、またはKotlinマルチプラットフォームの公開に関する短い投稿

最近、JCenterが間もなく閉鎖されるというニュースがありどうすればそこに住み続けることができるのか、別の場所に移動する必要があるとは言われいません。個人的には、MavenCentralは長い間出版してきたので、主な候補になりましたが、昨年はBintrayを通じてそれを行うことに慣れていました。この投稿では、私が出会った水中のものと、公開スクリプトをどのように変更しなければならなかったかについての簡単な情報があります。





この記事には、ネイティブターゲットの公開に関する情報は含まれていませんそれでも、この記事の情報がお役に立てば幸いです。





おそらくすでに書いた

確かに、このトピックに関するいくつかの記事(2019年2021年)がありますが、現時点では、スクリプトの公開に関する情報を含む本格的な記事は1つも見ていません(おそらく、間違った場所を見ただけです)。ほとんどの情報で使用れているのは、記事(登録Sonatype、ドメイン登録、GPGキーの作成とその目的だけでなく)から取得できます。以下は、マルチプラットフォームプロジェクトを公開するためのユニバーサルスクリプトです。





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
}

      
      



このスクリプトの例はここにありますJCenterから移動しているときに、次のエラーが発生しました。





  • 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



ここでは、プロジェクトの並列ビルド(フラグ--parallel



またはorg.gradle.parallel=true



gradle.properties



)を使用する場合、並列ビルドを無効にするフラグがないと、複数のリポジトリに公開されるため、リリースを閉じて公開できない可能性があるために使用されます。 (これは上記の記事にも書かれています)。





結論の代わりに

図書館の出版は難しいので、頑張ってください。コメント/追加または他の人を助けることができる何か他のものがあるならば、私がこれについてのメモを記事に加えるようにコメントを書いてください。がんばろう。








All Articles