gpt4 book ai didi

groovy - 如何在gradle中包括 “global”文件

转载 作者:行者123 更新时间:2023-12-03 05:01:40 26 4
gpt4 key购买 nike

我有多个项目都有自己的build.gradlesettings.gradle
我想在项目的的一个中添加一个也名为build.gradle(或其他名称,这很重要)的“全局”文件,我的问题是:我如何包括所有其他项目中的新文件(build.gradlesetting.gradle文件)?

最佳答案

我认为您无法针对settings.gradle做到这一点,但是您可以使用以下命令轻松地加载其他build.gradle文件

apply from: "$rootDir/../OtherProject/path/to/your.gradle"

此特定示例将假定您的项目根目录包含在一个目录中。

当然,由于您是在项目之间原始加载的,因此不会加载OtherProject / settings.gradle中的任何定义,因此,除非本质上是真正的全局引用,否则在加载的文件中引用可能会失败。

但是,您可能想考虑使用 a multiproject build并以更合理地将它们组合在一起的方式重组项目,而不是在不同项目之间艰难地破解构建脚本。

另外,如果您要在项目之间共享常见任务等,请考虑将其转换为插件,并将其包含在每个需要该功能的项目中。

编辑:显示项目之间的链接

要访问全局值,请使用 ext。有关更多示例,请参见 ext gradle docs

Proj1 / build.gradle:
apply from: "$rootDir/../Proj2/build.gradle"

task printX << {
# this is the full syntax
println project.ext.x

# however, anything on project.ext becomes global too, so you
# can reference it directly as just "x"
println "x[a] = ${x['a']}"
println x['b']

# showing it's just the map we expect
def keysOfX = x.keySet()
println keysOfX
}

Proj2 / build.gradle:
ext {
x = [a: 1, b: 2]
}

运行任务:
> cd Proj1
> gradle printX
:printX
{a=1, b=2}
x[a] = 1
2
[a, b]

BUILD SUCCESSFUL

Total time: 2.894 secs

关于groovy - 如何在gradle中包括 “global”文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31583156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com