所以我们有一个巨大的多项目代码库,结构如下:
C:\Eclipse\Workspace->
AR
DC
CI
..
..
每个项目都有一个build.gradle文件,其中80%的代码相同,只有所有项目的依赖项部分都在变化。
我想要实现的目标:
我想创建一个名为“BuildAllProjects”的父项目,它将是具有build.gradle,settings.gradle和gradle.properties的 ONLY 项目,并建议有一个属性文件来提及依赖项每个项目,如:
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。
谢谢, Yogendra
答案 0 :(得分:0)
在Gradle的构建语言之上分层基于属性文件的构建语言并不会让我感到满意。相反,我建议专注于编写干净和DRY Gradle构建脚本。您可以在Gradle User Guide中了解有关Gradle强大的抽象功能(配置注入,脚本插件,buildSrc
,自定义插件和扩展等)的更多信息。
在典型的多项目构建中,子项目构建脚本主要包含依赖性声明,而大多数其他配置发生在根构建脚本和/或脚本插件中。