На самом деле, это работает так, как я просил выше!
Я не ожидал, что так и будет, исходя из документов, поэтому я изначально задал вопрос.
Но следующее Задача, определенная так в Kotlin (в / buildSr c), работает:
open class TaskA @Inject constructor(
@org.gradle.api.tasks.InputFile var inputFile : File,
@org.gradle.api.tasks.OutputFile var outputFile : File
) : DefaultTask() {
@TaskAction
fun doIt() {
val contents = inputFile.readText()
val result = contents.replace("a", "b")
outputFile.parentFile.mkdirs()
outputFile.writeText(result)
}
}