gradle - Gradle - 如何从子项目中获取任务输出
问题描述
我是 Gradle 的新手。我有一个这样的示例项目结构:
rootA/
├── build.gradle
├── settings.gradle
└── subA
└── build.gradle
在subA
项目中,有一个任务,让调用,goInsideSubA()
这个任务可以返回一个字符串 (类似于)“this is inside subA project”
编辑:这是我的示例上下文:
//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'
我的问题是如何让项目中的任务重用该字符串“这 是在 subA 项目中”?showInsideSubA()
rootA
谢谢
解决方案
我通过使用“任务属性”找到了一个解决方案:
//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
推荐阅读
- python - 如何保留原始字符串(作为变量)以便我可以将其传递给函数?
- python - 如果 pandas 列 [x] 中的变量,则乘以 pandas 列 [y] 的值
- c# - 在 C# 中将 SQL 查询转换为 LINQ 方法语法
- powerbi - 当我按报表中的表中的图例进行筛选时,Power BI 中的卡片无法正确筛选,解决方案是什么?
- typescript - 控制器的 NestJS 单元测试:模拟从服务中删除不起作用
- visual-studio-code - 安装 Vcpkg 来管理 windows 上的 c/c++ 库(Vs Code)
- node.js - Node-Powershell Azure 函数应用程序不会读取命令
- json - JSON 字符串到 map_launcher Flutter
- php - PHP:如何确保输入到表单中的句子至少有 20 个字符,最后 9 个字符被拉到新页面上显示?
- python - python:将两个数字转换为单词