java - 如何将一个 Gradle 脚本导入另一个?

我有一个复杂的 Gradle 脚本,其中包含围绕构建大量 NetBeans 项目并将其部署到多个环境的大量功能。

该脚本运行良好,但本质上它都是通过包含项目和环境信息的六张 map 配置的。

我想将任务抽象到另一个文件中,这样我就可以在一个简单的构建文件中简单地定义我的 map ,并从另一个文件中导入任务。通过这种方式,我可以为多个项目使用相同的核心任务,并使用一组简单的 map 配置这些项目。

谁能告诉我如何以类似于 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 构建文件的子项目组成。

最佳答案

0.9 中有一个新功能。您可以使用 apply from: 'other.gradle' 命令。

阅读我关于同一件事的问题:Is there a way to split/factor out common parts of Gradle build

https://stackoverflow.com/questions/2265283/

相关文章:

javascript - webpack中的XX个隐藏模块是什么意思

javascript - 使用 Webpack 基于环境的条件构建

c++ - C++的类似Maven的依赖管理?

android - 如何更改 Android 项目的目标构建?

java - 如何向 Gradle 添加新的源集?

android - Gradle:如何构建不同构建类型的不同风格?

android - 如何在 Android Gradle 中自动增加 versionCode

xcode - 使用 Xcode 4 运行发布版本

linux - 如何构建和安装 GLFW 3 并在 Linux 项目中使用它

build - 使用 msbuild 复制所有文件和文件夹