【问题标题】:Gradle: using task's member as an other task's inputGradle:使用任务的成员作为其他任务的输入
【发布时间】:2019-01-27 09:17:49
【问题描述】:

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'
}

我去的时候

./gradlew -q getVersion

我明白了

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

我该如何做到这一点?

非常感谢!

【问题讨论】:

标签: gradle gradle-task


【解决方案1】:

诀窍是从 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'
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 2015-08-17
    相关资源
    最近更新 更多