Close and release artifact on maven central server using gradle

I have this gradle script:

def configureUploadArtifacts(groupId, repoUrl, _packaging) { def gpgKeyId = System.getenv('GPG_KEY_ID') def gpgPassword = System.getenv('GPG_KEY_PASSWORD') def gpgFile = System.getenv('PATH_TO_GPG_FILE') project.group = groupId; project.archivesBaseName = name project.version = getVersionNameFromFile() ext."signing.keyId" = gpgKeyId ext."signing.password" = gpgPassword ext."signing.secretKeyRingFile" = gpgFile uploadArchives { apply plugin: 'maven' apply plugin: 'signing' signing { sign configurations.archives } def userName = System.getenv('OSSRH_USER_NAME'); def password = System.getenv('OSSRH_PASSWORD'); repositories { mavenDeployer { beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { authentication(userName: userName, password: password) } snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { authentication(userName: userName, password: password) } pom.project { name "${project.name}" packaging "${_packaging}" // optionally artifactId can be defined here description 'A collection of core tools I use' url "http://github.com/${repoUrl}" scm { connection "scm:git:git://github.com/${repoUrl}.git" developerConnection "scm:git:ssh://github.com/${repoUrl}.git" url "http://github.com/${repoUrl}/tree/master" } licenses { license { name 'The Apache License, Version 2.0' url 'http://www.apache.org/licenses/LICENSE-2.0.txt' } } developers { developer { id 'TacB0sS' name 'My Name' email 'My Email' } } } } } } } 

I use it on my Jenkins server and it works wonderfully. I would also like to close and release artifacts ... How to do this?

+5
source share
2 answers

The solution was to add the following to the root build.gradle file:

 ext."oss-releases.username" = System.getenv('OSSRH_USER_NAME') ext."oss-releases.password" = System.getenv('OSSRH_PASSWORD') ext."oss-releases.url" = "https://oss.sonatype.org/index.html#stagingRepositories" apply plugin: 'nexus-workflow' 

And run the following at a command prompt:

 bash gradlew nexusStagingRelease 

DONE!

0
source

You can use gradle-release on a script. It works similarly to the maven-release plugin (removes SNAPSHOT from the version, creates, creates tags, deploys artifacts and updates for the next version):

 apply plugin: 'net.researchgate.release' 

In Jenkins, using the plugin release , you will need to configure the automatic release :

 gradle release -Prelease.useAutomaticVersion=true \ -Prelease.releaseVersion=$VERSION \ -Prelease.newVersion=$NEXT_VERSION 
0
source

Source: https://habr.com/ru/post/1271306/


All Articles