我有一个复杂的gradle脚本,该脚本封装了围绕将多个netbeans项目构建和部署到许多环境的功能。
该脚本可以很好地运行,但是从本质上来说,它是通过六个包含项目和环境信息的地图进行配置的。
我想将任务抽象到另一个文件中,以便可以在一个简单的构建文件中简单地定义地图,然后从另一个文件中导入任务。这样,我可以对多个项目使用相同的核心任务,并使用一组简单的地图来配置这些项目。
谁能告诉我如何以与Ant的任务类似的方式将一个gradle文件导入另一个文件?到目前为止,我已经拖了Gradle的文档无济于事。
附加信息
汤姆在下面做出回应后,我想我会尽力弄清楚我的意思。
基本上,我有一个gradle脚本,它可以运行许多子项目。但是,这些子项目都是Netbeans项目,并且带有它们自己的ant生成脚本,因此我要分担一些任务来分别调用它们。
我的问题是我在文件顶部有一些配置,例如:
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构建文件的子项目的大型项目都可以使用task.gradle。
apply from
立即执行外部任务。这在执行逻辑中可能不是最好的选择(即,我想在需要时执行任务,而不是立即执行)。
apply from
立即执行外部任务。不要误导。外部任务已配置,未执行。