2017-08-28 45 views
6

mam ten Gradle skrypt:zamknąć i zwolnić artefakt na Maven centralnym przy 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' 
         } 
        } 
       } 
      } 
     } 
    } 
} 

Używam go na moim serwerze Jenkins i działa wspaniale. Chciałbym również zamknąć i uwolnić artefakty ... Jak to zrobić?

+0

Co masz na myśli przez * close *? –

+0

Proces ręczny polega na przesłaniu, zamknięciu ... wydania. – TacB0sS

Odpowiedz

0

Rozwiązanie było dodanie następujących do pliku korzeń build.gradle:

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' 

i uruchom następujące z com Wiersz polecenia:

bash gradlew nexusStagingRelease 

ZOSTAŁ!

0

Możesz użyć gradle-release w swoim skrypcie. To działa podobnie jak maven-RELEASE-plugin (usuwa SNAPSHOT od wersji, buduje, tworzenia znaczników, wdraża artefakty i aktualizacji do nowej wersji rozwojowej):

apply plugin: 'net.researchgate.release' 

W Jenkins używając release plugin, trzeba będzie skonfigurować unattended release:

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

Ta wtyczka może tworzyć artefakty z projektu z wieloma projektami, przesłać je do centralnego Maven, zamknąć i zwolnić repozytorium przemieszczania? – TacB0sS