2015-11-23 33 views
5

Sto creando build gradle come nuovo utente gradle, ma in passato ho lavorato con Maven.plug-in gradle-release + plugin di pubblicazione maven

che sto cercando di riprodurre le azioni del plugin rilascio Maven:

  • versione Change ramo della commercializzazione Numero (impegnarsi a svn)
  • creare un tag (a svn)
  • Distribuire il rilascio tag nel Nexus OSS
  • versione Change ramo nuovo numero Snapshot (impegnarsi a svn)

Come potete vedere, sto usando:

  • Nexus OSS come versioni repository
  • SVN come SCM
  • Gradle (2,8)

Sto cercando di raggiungere i miei obiettivi con questi due plugins:

  1. Gradle-release Plugin:

    • Modifica versione ramo della commercializzazione Numero (impegnarsi a svn)
    • creare un tag (a svn)
    • Modifica versione ramo nuovo numero Snapshot (impegnarsi a svn)
    linea

    di comando: Gradle rilasciare

  2. Maven Publish Plugin per la distribuzione su Nexus: la linea

    comando: Gradle pubblicare

Tutte le idee come avrei potuto generare un rilascio e distribuirlo a Nexus in un solo colpo automaticamente?

Qui di seguito è il mio 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 
    ] 
} 

risposta

9

È necessario impostare una dipendenza tra le due attività. Questo può essere fatto con l'aggiunta di questa linea nel vostro build.gradle:

afterReleaseBuild.dependsOn publish 

Il rilascio-plugin ha due compiti che sono esattamente per il caso d'uso di agganciare altri compiti nel processo di rilascio, vale a dire beforeReleaseBuild e afterReleaseBuild. Queste attività (e le dipendenze impostate) vengono eseguite prima o rispettivamente dopo l'attività build.

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