Ich möchte die Version und Sha-Dateien für mein Projekt erstellen. Ich benutze Springpacks Umpackmethode, um mein Glas zu bauen.Zweifel mit Gradle Schließung
subproject.tasks.create(name: 'writeVersion') {
new File("$rootDir/upload/").mkdirs()
def sha = calcSha1(new File("$rootDir/deploy/${jar.archiveName}"));
def gitId = grgit.head().abbreviatedId
def shaFile = new File("$rootDir/upload/$rootProject.serviceName-$gitId-$sha"+".sha256");
def versionFile = new File("$rootDir/upload/version.txt");
shaFile.text = $sha;
versionFile.text = "$rootProject.serviceName-$gitId-$sha"
}
Dank dagezi
Ich habe folgende:
def calcSha1 = { file ->
MessageDigest md = MessageDigest.getInstance("SHA-1");
file.eachByte 4096, {bytes, size ->
md.update(bytes, 0, size);
}
return md.digest().collect {String.format "%02x", it}.join();
}
Jedesmal, wenn ich die Aufgabe auszuführen, erhalte ich eine Fehlermeldung, dass das Glas nicht gefunden wird. Ich verstehe, dass dies passiert, weil es versucht, den SHA zur Konfigurationszeit zu generieren, aber nicht sicher ist, wie das zu lösen ist.