我有一个复杂的 Gradle 脚本,它包含围绕构建和部署多个 NetBeans 项目到多个环境的大量功能。
该脚本运行良好,但本质上它都是通过包含项目和环境信息的六张地图配置的。
我想将任务抽象到另一个文件中,这样我就可以在一个简单的构建文件中简单地定义我的地图,并从另一个文件中导入任务。通过这种方式,我可以为多个项目使用相同的核心任务,并使用一组简单的地图配置这些项目。
谁能告诉我如何以类似于 Ant 任务的方式将一个 Gradle 文件导入另一个文件?到目前为止,我已经搜索了 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 构建文件的子项目组成。