Gradle项目的buildSrc文件夹是否应提交至源代码仓库?
核心结论
不要全量提交整个buildSrc目录,也不要直接把整个目录加进版本控制忽略规则,仅需提交该目录下的核心源码与配置文件,所有构建过程产生的本地临时文件,都应当单独加入忽略规则,无需提交。
很多新手容易走两个极端:要么把整个目录连构建产物一股脑提交导致仓库冗余,要么干脆整个忽略掉,让其他协作者拉取代码后因为缺少自定义构建逻辑直接构建失败。
必须提交到代码仓库的buildSrc内容
这部分是构建逻辑的核心,少了的话其他协作者拉取代码会直接构建失败:
buildSrc自身的构建配置文件:比如目录下的build.gradle/build.gradle.kts、settings.gradle/settings.gradle.kts- 目录下的自定义构建逻辑源码:比如
src/路径下的所有Groovy、Kotlin代码、自定义插件实现、约定好的构建规则 - 源码配套的资源文件:比如配置properties、约定的任务参数文件
完全无需提交的buildSrc内容
这部分就是你观察到的临时文件,本质和项目根目录下build/文件夹的属性完全一致,属于本地构建过程自动生成的产物:
buildSrc/build/目录:是buildSrc自身执行编译、打包、缓存依赖时产生的输出文件,每次执行Gradle构建都会自动重新生成,没有任何同步价值buildSrc/.gradle/目录:是Gradle运行时生成的本地元数据缓存,换设备拉取代码后会自动重建- 各类IDE生成的本地临时文件:比如编译产生的class文件、代码索引缓存
实操层面不需要手动逐类判断文件归属,只需要在项目根目录的忽略规则(比如
.gitignore)中加入对应条目即可:# 忽略buildSrc目录下的本地构建产物 buildSrc/build/ buildSrc/.gradle/
配置完成后,版本控制系统会自动追踪所有核心源码文件,同时跳过无价值的临时文件,既不会漏提交关键的构建逻辑,也不会让冗余文件占用仓库空间。
内容的提问来源于stack exchange,提问作者Sagar
相关产品推荐
相关产品推荐

