Dariusz Kuc
03/02/2020, 9:13 PMDariusz Kuc
03/02/2020, 9:41 PMopen class MyCustomTask1 : DefaultTask() {
@Input
@Option(option = "outputFileName", description = "output file name")
val outputFileName: Property<String> = project.objects.property(String::class.java)
@OutputFile
val outputFile: Provider<RegularFile> = outputFileName.flatMap { name -> project.layout.buildDirectory.file(name) }
// actual task code omitted for clarity
}
open class MyCustomTask2 : DefaultTask() {
@Input
@Optional
@Option(option = "inputFileName", description = "input file name")
val inputFileName: Property<String> = project.objects.property(String::class.java)
@Input
@Optional
val inputFile: RegularFileProperty = project.objects.fileProperty()
// skipping code
}
While individual tasks worked fine I'm trying to configure task2
to use task1
output, e.g. in build.gradle.kts
val firstTask by tasks.getting(MyCustomTask1::class) {
// configuration
}
val secondTask by tasks.getting(MyCustomTask2::class) {
inputFile.set(firstTask.outputFile)
dependsOn("firstTask")
}
unfortunately when run I'm hitting
Unable to store input properties for task .... Property 'inputFile' with value '/valid/path/to/task1/outputFile' cannot be serialized.
Any ideas?Dariusz Kuc
03/02/2020, 9:42 PMtask2
using @Input
on RegularFileProperty
it works when I updated it to @InputFile
miqbaldc
03/02/2020, 10:29 PMdependsOn
first then running your inputFile.set
?
does your outputFile
exist?Dariusz Kuc
03/02/2020, 11:29 PMDariusz Kuc
03/02/2020, 11:29 PMDariusz Kuc
03/02/2020, 11:29 PMmiqbaldc
03/03/2020, 1:19 AM