2017-08-28 44 views
6

我有這個腳本的gradle:Maven的中央關閉和釋放的神器使用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' 
         } 
        } 
       } 
      } 
     } 
    } 
} 

我用它我詹金斯服務器上,它奇妙的作品。 我也想關閉並釋放工件... 我該怎麼做?

+0

是什麼意思*關閉*? –

+0

手動過程是上傳,關閉...發佈。 – TacB0sS

回答

0

的解決辦法是添加以下到根的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' 

並運行從COM以下mand line:

bash gradlew nexusStagingRelease 

DONE!

0

您可以在腳本上使用gradle-release。它可以作爲Maven的釋放小插件類似(從版本中刪除快照,構建,創建標籤,部署文物和更新到下一個開發版本):使用release plugin

apply plugin: 'net.researchgate.release' 

在詹金斯,你將需要配置unattended release

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

這個插件可以從多項目gradle項目構建工件,將它們上傳到Maven central,關閉並釋放暫存倉庫? – TacB0sS