Как использовать вывод exec () в gradle

Я пытаюсь реализовать задачу gradle для динамического создания файла buildsignature.properties из ряда значений переменных среды и выполнения оболочки. У меня это в основном работает, но я не могу получить вывод команд оболочки. Вот моя задача ...

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" )
    }
}

Но результирующее поле свойств не дает желаемых результатов для buildUser и 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

Как мне получить buildUser и buildSystem, совпадающие с выводом соответствующего exec, а не с некоторым execResultImpl по умолчанию toString? Это действительно не может быть так сложно, не так ли?

Ответы на вопрос(4)

Ваш ответ на вопрос