【问题标题】:Gradle - Single build.gradle with dynamic dependenciesGradle - 具有动态依赖关系的单个 build.gradle
【发布时间】:2014-05-25 17:14:05
【问题描述】:

所以我们有一个庞大的多项目代码库,其结构如下:

C:\Eclipse\Workspace->
                    AR
                    DC
                    CI
                    ..
                    ..

每个项目都有一个 build.gradle 文件,其中有 80% 的代码相同,只是所有项目的依赖项部分都发生了变化。

我想要达到的目标:

我想创建一个名为“BuildAllProjects”的父项目,这将是 ONLY 具有 build.gradle、settings.gradle 和 gradle.properties 的项目,并建议有一个属性文件来提及依赖项每个项目,例如:

AR=j2ee,commons-lang,FW,DA,Common
DC=commons-codec,FW,DA,Common,spring-core

然后使用 gradle expand[] 属性为我正在构建的项目动态填充依赖项,例如,如果我正在构建 AR,我可能想要运行:

gradle -PAR build

它将从属性中读取“AR”的依赖项并以如下形式展开:

dependencies {
   compile name 'j2ee'
   compile name 'commons-lang'
}

你们认为这是可能的还是实现它的最糟糕的方法?我是 GRADLE 的新手,上面提供的信息是基于我在一周内获得的知识。请提供您的建议以在 gradle 中实现这一点。

谢谢, 约根德拉

【问题讨论】:

    标签: gradle build.gradle


    【解决方案1】:

    在 Gradle 的构建语言之上分层基于属性文件的构建语言并没有让我觉得可取。相反,我建议专注于编写干净和干燥的 Gradle 构建脚本。您可以在Gradle User Guide 了解更多关于 Gradle 强大的抽象功能(配置注入、脚本插件、buildSrc、自定义插件和扩展等)。

    在典型的多项目构建中,子项目构建脚本主要包含依赖项声明,而大多数其他配置发生在根构建脚本和/或脚本插件中。

    【讨论】:

    • 所以你的意思是每个子项目仍然会有一个 build.gradle 但只有依赖项,而其余 80% 的代码将放在根 build.gradle 中?我仍然无法理解 2 个 gradle 构建文件如何相互使用?
    • Gradle User Guide里都有解释。
    猜你喜欢
    • 2017-01-26
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 2012-03-30
    • 2011-06-06
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多