如何将一个 Gradle 脚本导入到另一个脚本中?
我有一个复杂的 Gradle 脚本,它围绕构建许多 NetBeans 项目并将其部署到许多环境来包装大量功能。
该脚本运行良好,但实质上它都是通过包含项目和环境信息的六个地图配置的。
我想将任务抽象到另一个文件中,以便我可以简单地在一个简单的构建文件中定义我的映射,然后从另一个文件导入任务。通过这种方式,我可以对许多项目使用相同的核心任务,并使用一组简单的地图配置这些项目。
谁能告诉我如何将一个Gradle文件导入另一个,就像Ant的任务一样?到目前为止,我已经拖网了Gradle的文档,但无济于事。
附加信息
在汤姆在下面的回应之后,我想我会试着澄清一下我的意思。
基本上,我有一个 Gradle 脚本,它运行许多子项目。但是,这些子项目都是 NetBeans 项目,并且附带了自己的 ant 构建脚本,因此我在 Gradle 中有任务来调用其中每个子项目。
我的问题是我在文件顶部有一些配置,例如:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
然后,我生成任务,例如:
projects.each({
task "checkout_$it.shortname" << {
// Code to for example check module out from cvs using config from 'it'.
}
})
我有很多这样的任务生成片段,它们都是通用的 - 它们完全取决于项目列表中的配置。
因此,我想要的是一种将其放在单独脚本中并按以下方式导入的方法:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
import("tasks.gradle") // This will import and run the script so that all tasks are generated for the projects given above.
因此,在此示例中,tasks.gradle 将包含所有通用任务生成代码,并将针对主 build.gradle 文件中定义的项目运行。通过这种方式,tasks.gradle 是一个文件,可供所有大型项目使用,这些项目由许多具有 NetBeans ant 构建文件的子项目组成。