Récemment, on a appris que JCenter serait bientôt fermé et comment nous pouvons continuer à y vivre n'est pas dit que nous devons déménager ailleurs. Pour moi personnellement, MavenCentral est devenu le principal candidat, puisque j'y publie depuis longtemps, même si depuis un an je me suis habitué à le faire via Bintray. Dans cet article, il y aura de brèves informations sur les sous-marins que j'ai rencontrés et comment j'ai dû changer mes scripts d'édition.
CET ARTICLE NE CONTIENT AUCUNE INFORMATION SUR LA PUBLICATION DES CIBLES NATIVES . Néanmoins, j'espère que les informations contenues dans l'article vous seront utiles.
Probablement déjà écrit
En effet, il existe plusieurs articles sur ce sujet ( 2019 et 2021 ), mais pour le moment je n'ai pas vu un seul article à part entière avec des informations sur la publication de scripts (probablement, je viens de chercher au mauvais endroit). Utilisé sur la plupart des informations peuvent être tirées d'un article (enregistrement Sonatype, enregistrement de domaine, création de clé GPG et son but et pas seulement). Voici un script universel pour la publication d'un projet multiplateforme:
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
}
Vous pouvez voir un exemple de ce script ici . En quittant JCenter, j'ai rencontré les erreurs suivantes:
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
ici, il est utilisé pour la raison que si vous utilisez la construction parallèle du projet (drapeau --parallel
ou org.gradle.parallel=true
in gradle.properties
), alors sans le drapeau de désactivation de la construction parallèle, la publication sera effectuée dans plusieurs référentiels, ce qui peut entraîner l'impossibilité de fermer et de publier des versions (cela a également été écrit dans les articles ci-dessus).
Au lieu d'une conclusion
La publication d'une bibliothèque est difficile, c'est pourquoi je vous souhaite sincèrement le meilleur dans cette entreprise. S'il y a des commentaires / ajouts ou autre chose qui peut aider les autres, écrivez dans les commentaires afin que j'ajoute une note à ce sujet à l'article. Bonne chance.