Gradle 多项目自定义 build.gradle 文件名

标签 gradle build multi-project

我有一个多项目 Gradle 构建,目前通过单个 build.gradle 文件进行配置。

这个项目中有 70 多个模块,单个(巨大的)build.gradle 文件使用起来变得很麻烦,所以我想将它拆分为每个模块的小型 buildscript 文件。

现在,我不想拥有 70 个小的 build.gradle 文件(每个模块中有一个),因为这会使导航到特定的 build.gradle 在 IDE 中变得很痛苦(文件之间的唯一区别是它们的路径)。

我想要的是我的每个模块构建脚本文件以模块名称命名。

而不是这个:

root  
|--foo\  
|--| build.gradle  
|--bar\  
|--| build.gradle 

我要这个:
root  
|--foo\  
|--| foo.gradle  
|--bar\  
|--| bar.gradle 

由于这似乎没有得到官方支持,我尝试对根 build.gradle 进行一些修改,但似乎应用 .gradle 文件是在项目配置之前发生的,因此这会给依赖于其他项目的项目带来错误项目:

在根 build.gradle 中:
subprojects { subProject ->
    rootProject.apply from: "${subProject.name}/${subProject.name}.gradle"
}

foo.gradle,它不是标准的 build.gradle 文件:
project('foo') {
    dependencies {
        compile project(':bar')
    }
} 

有没有办法让它像这样工作?

最佳答案

您可以在 settings.gradle 中自定义构建脚本的名称文件。查看 Ben Muschko 最近关于 multi-project 的介绍构建或查看Gradle sources进行类似定制的地方。

rootProject.children.each {
  it.buildFileName = it.name + '.gradle'
}

关于Gradle 多项目自定义 build.gradle 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30872127/

相关文章:

java - 如何使用来自另一个模块的调试类编译 Gradle 子项目

android - Flutter、Firebase Crashlytics :/com_crashlytics_build_id. xml:资源和 Assets 合并:重复资源

android - 警告 "Kotlin plugin version is not the same as library version"(但它是!)

java - Intellij Idea 13 UI Designer 和自动 Gradle 构建

node.js - 通过 npm run 为 Reactjs 项目运行构建命令时出错

Gradle:如何在多项目构建中共享常见任务?

gradle - 无法加载和读取属性文件

reactjs - 生产 webpack main.bundle.js 包含文件的完整路径

c++ - 是否可以在一个解决方案中包含具有不同平台工具集的项目? (MSBuild)

gradle - Gradle禁用特定任务的自动子项目执行