2015-11-23 36 views
5

Tworzę gradle builds jako nowy użytkownik gradle, ale pracowałem z mavenem w przeszłości.Wtyczka gradle-release + wtyczka publikowania maven

Próbuję odtworzyć działania wtyczki uwalnianiu Maven:

  • wersji Zmiana oddziału na numer wersji (popełnić w SVN)
  • Utwórz tag (na SVN)
  • Należy wdrożyć uwalnianie tag w Nexus OSS
  • Zmiana oddziału do nowego numeru wersji Snapshot (popełnić w svn)

Jak widać, używam:

  • Nexus OSS jako wersjonowania repozytorium SVN
  • jako SCM
  • Gradle (2,8)

Próbuję osiągnąć moje cele z tych dwóch wtyczek:

  1. Gradle-release Plugin:

    • Zmień wersję oddział na numer wersji (popełnić w svn)
    • Utwórz tag (na SVN)
    • Zmień wersję odgałęzieniem do nowego numeru Snapshot (popełnić w svn)
    linia

    Command: Gradle zwolnić

  2. Maven Publish Plugin wdrożyć do Nexusa: linię

    polecenia: Gradle publikować

Wszelkie pomysły jak mogę wygenerować komunikat i automatycznie wdrożyć go do Nexusa w jeden strzał?

Poniżej jest moje build.gradle:

plugins { 
    id 'net.researchgate.release' version '2.3.4' 
} 

apply plugin: 'maven-publish' 


/*------------------------ 
----- PUBLISH PLUGIN ----- 
-------------------------- 
https://docs.gradle.org/current/userguide/publishing_maven.html 
--------------------------*/ 
publishing { 
    publications { 
     maven(MavenPublication) { 
      groupId mavenGroup 
      artifactId mavenArtifact 
      version version 

      from components.java 
     } 
    } 
    repositories { 
     maven { 
      if(project.version.endsWith('-SNAPSHOT')) { 
       url "${nexusUrl}/content/repositories/repo-snapshots" 
      } else { 
       url "${nexusUrl}/content/repositories/repo-releases" 
      } 
      credentials { 
       username nexusUsername 
       password nexusPassword 
      } 
     } 
    } 
} 

/*------------------------ 
----- RELEASE PLUGIN ----- 
-------------------------- 
https://github.com/researchgate/gradle-release 
--------------------------*/ 
release { 
    failOnCommitNeeded = false 
    failOnUnversionedFiles = false 

    scmAdapters = [ 
     net.researchgate.release.SvnAdapter 
    ] 
} 

Odpowiedz

9

Musisz skonfigurować zależność między tymi dwoma zadaniami. Można to zrobić poprzez dodanie tej linii w swojej build.gradle:

afterReleaseBuild.dependsOn publish 

Uwolnienie-plugin ma dwa zadania, które są dokładnie za usecase zahaczających inne zadania w procesie uwalniania, mianowicie beforeReleaseBuild i afterReleaseBuild. Te zadania (i ustawione zależności) są wykonywane przed lub odpowiednio po zadaniu build.

https://github.com/researchgate/gradle-release#custom-release-steps