Verwendung der exec () - Ausgabe in Gradle
Ich versuche, eine gradle-Task zu implementieren, um dynamisch eine buildsignature.properties-Datei aus einer Reihe von Umgebungsvariablenwerten und Shell-Ausführungen zu erstellen. Ich habe es meistens funktioniert, aber ich kann nicht scheinen, die Ausgabe der Shell-Befehle zu erhalten. Hier ist meine Aufgabe ...
task generateBuildSignature << {
ext.whoami = exec() {
executable = "whoami"
}
ext.hostname = exec() {
executable = "hostname"
}
ext.buildTag = System.env.BUILD_TAG ?: "dev"
ant.propertyfile(
file: "${buildDir}/buildsignature.properties",
comment: "This file is automatically generated - DO NOT EDIT!" ) {
entry( key: "version", value: "${project.version}" )
entry( key: "buildTimestamp", value: "${new Date().format('yyyy-MM-dd HH:mm:ss z')}" )
entry( key: "buildUser", value: "${ext.whoami}" )
entry( key: "buildSystem", value: "${ext.hostname}" )
entry( key: "buildTag", value: "$ext.buildTag" )
}
}
Das resultierende Eigenschaftsfeld liefert jedoch nicht die gewünschten Ergebnisse für buildUser und buildSystem.
#This file is automatically generated - DO NOT EDIT!
#Mon, 18 Jun 2012 18:14:14 -0700
version=1.1.0
buildTimestamp=2012-06-18 18\:14\:14 PDT
buildUser=org.gradle.process.internal.DefaultExecHandle$ExecResultImpl@2e6a54f9
buildSystem=org.gradle.process.internal.DefaultExecHandle$ExecResultImpl@46f0bf3d
buildTag=dev
Wie kann ich buildUser und buildSystem so einstellen, dass sie mit der Ausgabe der entsprechenden exec übereinstimmen, anstatt mit einer Standardausgabe von ExecResultImpl toString? Das kann doch nicht so schwer sein, oder?