【问题标题】:Gradle - How to get task output from subprojectGradle - 如何从子项目中获取任务输出
【发布时间】:2019-11-17 15:30:22
【问题描述】:

我是 Gradle 新手。我有一个这样的示例项目结构:

rootA/
├── build.gradle
├── settings.gradle
└── subA
    └── build.gradle

subA 项目中,有一个任务,让我们调用goInsideSubA(),这个任务可以返回一个字符串(类似于)“这是在 subA 项目中” em>

编辑:这是我的示例上下文:

//subA/build.gradle:

task goInsideSubA() {
    def string = "this is inside subA project"
}

// rootA/build.gradle

task showInsideSubA() {
    doLast {
        // how can I get the string from :subA:goInsideSubA task here
    }
}
// settings.gradle

include ':subA'

我的问题是我怎样才能得到那个 string "this is inside subA project" 以便rootA 项目中的任务showInsideSubA() 重复使用?

谢谢

【问题讨论】:

  • “任务可以返回字符串”是什么意思?任务有输出,这些输出通常是文件。函数返回东西。你能展示一下你的任务是什么样的吗?
  • 嗨@smac89,我只是编辑问题以添加更多上下文
  • 我建议您查看任务输出。每个任务都有某种输出,但我只使用任务的该功能来生成文件或写入文件。我现在不在计算机附近尝试是否可以将字符串设置为输出,但您可以尝试一下

标签: gradle groovy build build.gradle gradlew


【解决方案1】:

我通过使用“任务属性”找到了解决方案:

//subA/build.gradle:

task goInsideSubA() {
    ext {
        myString = "this is inside subA project"
    }
}

// rootA/build.gradle

task showInsideSubA() {
    doLast {
        println tasks.getByPath(':subA:goInsideSubA').myString
    }
}
// settings.gradle

include ':subA'

结果:

$ gradle -q showInsideSubA
> this is inside subA project

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-05
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多