setVersionTask设置一个我想用作getVersionTask输入的成员。这是我的代码:

class TaskA extends DefaultTask {
    @InputFile
    File pbxprojectFile
    @Optional
    String version

    @TaskAction
    void exec() {
        this.version  "version_set"
    }
}

class TaskB extends DefaultTask {
    @Input
    String version
}

task setVersionTask(type: TaskA){
    pbxprojectFile project.file('foo.txt')
}

task getVersionTask(type: TaskB){
    doFirst{
        println('version ' + setVersionTask.version)
    }
    version setVersionTask.version
    dependsOn 'setVersionTask'
}

我去的时候



我懂了

发现任务':getVersionTask'的配置存在问题。
没有为属性“版本”指定值。

我该怎么做?

谢谢一群!

最佳答案

诀窍是从TaskA的doLast设置TaskB的版本:

task setVersionTask(type: TaskA){
    pbxprojectFile project.file('foo.txt')
    doLast{
        getVersionTask.version = version
    }
}

task getVersionTask(type: TaskB){
    doFirst{
        println('version ' + getVersionTask.version)
    }
    dependsOn 'setVersionTask'
}

关于gradle - Gradle:使用任务的成员作为其他任务的输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51944365/

10-11 14:05