Recentemente, houve notícias de que o JCenter será encerrado em breve e como podemos continuar a viver lá não foi dito que precisamos nos mudar para outro lugar. Para mim pessoalmente, o MavenCentral tornou-se o principal candidato, pois já trabalho lá há muito tempo, embora no ano passado me acostumei a fazê-lo através do Bintray. Neste post, haverá breves informações sobre os subaquáticos que conheci e como tive que mudar meus roteiros de publicação.
ESTE ARTIGO NÃO TEM NENHUMA INFORMAÇÃO SOBRE A PUBLICAÇÃO DE ALVOS NATIVOS . No entanto, espero que as informações neste artigo sejam úteis para você.
Provavelmente já escreveu
De fato, existem vários artigos sobre esse assunto ( 2019 e 2021 ), mas no momento não vi um único artigo completo com informações sobre a publicação de scripts (provavelmente, apenas procurei no lugar errado). Usado na maioria das informações podem ser retiradas de um artigo (registro Sonatype, registro de domínio, criação de chave GPG e sua finalidade e não só). O seguinte é um script universal para publicar um projeto multiplataforma:
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
}
Você pode ver um exemplo deste script aqui . Ao mover do JCenter, encontrei os seguintes erros:
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
aqui é usado pela razão de que se você usar a construção paralela do projeto (bandeira --parallel
ou org.gradle.parallel=true
em gradle.properties
), então sem a bandeira de desabilitar a construção paralela, a publicação será feita em vários repositórios, o que pode implicar na impossibilidade de fechar e publicar releases (isso também foi escrito nos artigos acima).
Em vez de uma conclusão
Publicar uma biblioteca é difícil, por isso, desejo sinceramente o melhor nessa empreitada. Se houver comentários / acréscimos ou algo que possa ajudar outras pessoas, escreva nos comentários para que eu acrescente uma nota sobre isso ao artigo. Boa sorte.