You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gradle文件间继承配置并仅覆写sourceSets,无需复制全部定义

如何在Gradle文件间仅覆写sourceSets而不复制所有定义

要实现build-baz.gradle继承build-bar.gradle的所有配置,仅覆写sourceSets,可以按以下步骤操作:

1. 导入基础配置

在build-baz.gradle开头先引入build-bar.gradle的全部内容,这样就能继承其中的Groovy函数和其他构建设置:

// build-baz.gradle
apply from: './build-bar.gradle'

2. 覆写sourceSets规则

注意:直接重新定义exclude会和原有规则累加(同时排除两个Application文件),所以需要先清空原有规则,再设置新的:

sourceSets {
    main {
        java {
            // 清除build-bar中设置的exclude规则
            exclude.clear()
            // 设置Baz应用专属的exclude规则
            exclude 'com/foo/BazApplication.java'
        }
    }
}

完整的build-baz.gradle代码

apply from: './build-bar.gradle'

sourceSets {
    main {
        java {
            exclude.clear()
            exclude 'com/foo/BazApplication.java'
        }
    }
}

原理说明

  • apply from是Gradle实现脚本复用的标准方式,能把build-bar的所有配置完整继承过来;
  • exclude.clear()是关键:如果跳过这一步,Gradle会自动合并新旧exclude规则,导致同时排除两个Application文件,不符合仅覆写的需求;
  • 重新设置exclude后,就完全替换了原有规则,达到只修改sourceSets的目的。

内容的提问来源于stack exchange,提问作者Rpj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 12:50:16