Ich möchte Release-Management in der Versionskontrolle automatisieren und die damit verbundenen Artefakte veröffentlichen.Gradle dynamische Version für die Veröffentlichung berechnen
Deshalb verwende ich den folgenden Build-Skript (Version zum Testen vereinfachte)
apply plugin: 'java'
apply plugin: 'maven-publish'
// --- Setup artifactory server repository ---
artifactory_contextUrl="http://vie2rhp02904"
artifactory_user="admin"
artifactory_password="..."
repositories {
maven { url "${artifactory_contextUrl}/libs-release" }
}
// -------------------------------------------
defaultTasks 'doit'
group = 'release-test'
version = "13.7-SNAPSHOT"
// --- Setup publishing parameters ---
publishing.repositories {
maven {
credentials {
username "${artifactory_user}"
password "${artifactory_password}"
}
if (project.version.endsWith('-SNAPSHOT')) {
url "${artifactory_contextUrl}/libs-snapshot-local"
} else {
url "${artifactory_contextUrl}/libs-release-local"
}
}
}
project.publishing.publications {
mavenJava(MavenPublication) {
from components.java
}
}
// -------------------------------------------
task createReleaseVersion << {
println("Version at start: $version")
// Doing release management, which builds a tagged version without the "-SNAPSHOT" phrase
version = "13.7.0"
println("actual version: $version")
}
task doit (dependsOn: ['createReleaseVersion', 'publish']) << {
}
publish.mustRunAfter createReleaseVersion
Every so lange gut funktioniert, wie ich nicht in der Ausführung einer Aufgabe, die Version Eigenschaft ändern. (Ist in der createReleaseVersion Aufgabe erledigt)
Wenn ich die Version ändere, wird die JAR-Datei mit dem richtigen Namen erstellt, aber die Veröffentlichung möchte den Namen gemäß der alten Version verwenden.
Wie kann ich mit der während der Ausführung der Aufgabe berechneten Version veröffentlichen?
T Hanks für deine Antwort, ich weiß, dass der Grund wegen der Reihenfolge der Ausführung ist. Aber ich hoffe, dass es einen Weg gibt. Spätere Konfigurationsbearbeitung ist von Gradle nicht erlaubt. (Habe es schon ausprobiert) Das manuelle Einstellen der Version bringt mich nicht weiter, weil der Hauptgrund dieser Aufgabe darin besteht, die neue Version automatisch zu berechnen. Meine Überwindung im Moment ist die Verwendung einer Batch-Datei, die zweimal aufruft. Beim ersten Mal aktualisiere ich die Versionseigenschaft in der Datei "gradle.properties" und dann mache ich den Rest mit der neuen Version. Aber ich würde es vorziehen, es in einem Anruf zu tun – Horst
@Horst können Sie den Code Ihrer Aufgabe in meine if-Anweisung setzen? Sie können es zu der Frage hinzufügen, damit wir sehen können, was passiert – AdamSkywalker
Sorry, ich weiß nicht, was du meinst? Man kann mein Problem reproduzieren, indem ich "grandle doit" mit meinem Build-Skript anrufe. Es veröffentlicht mit der falschen (ursprünglich eingestellten) Version – Horst