2017-07-20 6 views
0

Ich habe Jenkins CI-Pipeline, die Anwendungen freigibt. Dieser Prozess funktioniert so, dass die Person den Freigabeauftrag für die Anwendung auslöst. Dieser Job überprüft alle Projektabhängigkeiten über den Befehl grodle Abhängigkeiten. Für alle Abhängigkeiten, die Snapshot-Release-Jobs sind, wird automatisch ausgelöst. Auftrag freigeben, einfach lib/application version aktualisieren und in Artefakte implementieren.Gradle - automatische Update-Abhängigkeit Version

Wie kann ich die SNAPSHOT-Abhängigkeitsversion automatisch aktualisieren, um die Version in Großbuchstaben zu veröffentlichen?

Meine build.gradle Datei sieht wie folgt aus:

Properties versions = new Properties() 
versions.load(new FileInputStream(rootProject.projectDir.path + "/version.properties")) 

dependencies { 
    compile("projectA:${versions.projectAVersion}") 
    compile("projectB:${versions.projectBVersion}") 
} 

und version.properties Datei

projectAVersion=1.1.0-SNAPSHOT 
projectBVersion=1.1.0-SNAPSHOT 

In der Tat Ich suche etwas ähnliches Versionen Maven Plugin.

  • Ist es möglich, die Versionsnummer innerhalb von build.gradle automatisch zu aktualisieren? Wie?
  • Und härtere Version - ist es möglich, die Versionsnummer zu aktualisieren, wenn die Version in der externen version.properties Datei ist?

EDIT

In der Tat Ich brauche nur Maven Versionen-Plugin (Versionen: Einsatz-Releases und Versionen: use-next-Releases) Funktionalität in Gradle.

+1

Was bedeutet "Versionsnummer automatisch aktualisieren"? Einfach den '-SNAPSHOT' ausziehen, oder die zuletzt veröffentlichte Version nachschlagen und diese verwenden, oder ...? – nickb

+0

Sie möchten irgendwie einen Build auslösen, wenn 'version.properties' geändert wird? – ToYonos

Antwort

0

Ich bin nicht so klar mit Ihrer Frage. Was ich verstanden habe, ist, dass Sie den Versionswert nach jedem Build dynamisch aktualisieren müssen.

Was Sie tun können, ist, den Wert der Eigenschaften zu erhalten. Entfernen -SNAPSHOT. Update 1.1.0 mit Inkrement nach jedem Build. Wie 1.1.1, 1.1.2 usw.

Dies kann durch

 task testing { 
     Properties props = new Properties() 
     //getting and loading the property file 
     //Give proper path to file 
     File propsFile = new File('version.properties') 
     props.load(propsFile.newDataInputStream()) 
     //Now strip of -SNAPSHOT and get the last digit and increment it by 1 
      Integer rand = props.getProperty('lastDigit').toInteger()+1 
      String variable=rand.toString() 
     //Append -SNAPSHOT with 'variable and set the property 
      props.setProperty('version',variable) 
      props.store(propsFile.newWriter(), null) 
     } 

Dies funktioniert, tun, wenn mein understading des Problems ist richtig.

Verwandte Themen