假设我有一个自定义 gradle 任务:
open class CustomTask @Inject constructor(
private val inputFile: File,
private val outputFile: File
): DefaultTask()
到目前为止,在 gradle 中,定义输入或输出的常用方法是使用像 InputFile 这样的注释。 .
从 Kotlin 的角度来看,在构造函数中注入(inject)所有这些输入/输出值会很好,但我想知道, 是否可以?像这样的东西:
open class CustomTask @Inject constructor(
private @InputFile val inputFile: File,
private @OutputFile val outputFile: File
): DefaultTask()
最佳答案
实际上,它就像我上面问的那样工作!
根据文档,我没想到会这样,这就是我最初提出这个问题的原因。
但是在 Kotlin 中这样定义的以下任务(在 /buildSrc
下)可以工作:
open class TaskA @Inject constructor(
@InputFile var inputFile : File,
@OutputFile var outputFile : File
): DefaultTask() {
@TaskAction
fun doIt() {
val contents = inputFile.readText()
val result = contents.replace("a", "b")
outputFile.parentFile.mkdirs()
outputFile.writeText(result)
}
}
关于gradle - 在 Gradle (6.2) 中,我们可以将自定义任务的构造函数参数注释为 "input"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60346932/