2017-08-28 6 views
6

Ich habe dieses gradle Skript:Schließen und Release-Artefakt auf Maven zentral mit gradle

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' 
         } 
        } 
       } 
      } 
     } 
    } 
} 

Ich benutze es auf meinem Jenkins Server und es funktioniert wunderbar. Ich möchte es auch zu schließen und die Artefakte freizugeben ... Wie mache ich das?

+0

Was meinst du mit * nah *? –

+0

Der manuelle Prozess ist Upload, Schließen ... Release. – TacB0sS

Antwort

0

Lösung war die folgende an der Wurzel build.gradle Datei hinzufügen:

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' 

Und führen Sie den folgenden von der com mand line:

bash gradlew nexusStagingRelease 

FERTIG!

0

Sie können gradle-release auf Ihrem Skript verwenden. Es funktioniert ähnlich wie Maven-Release-Plugin (SNAPSHOT ab Version entfernt, Builds, Tags erstellen, setzt Artefakte und Updates auf die nächste Entwicklungsversion):

apply plugin: 'net.researchgate.release' 

In Jenkins, mit release plugin, müssen Sie die konfigurieren unattended release:

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

Dieses Plugin kann Artefakte aus Multiprojekt-Großprojekt erstellen, sie in Maven Central hochladen, schließen und das Staging-Repository freigeben? – TacB0sS

Verwandte Themen