如何将非Android Git库项目作为子模块添加到Android项目中
将目标仓库配置为Android项目Git子模块的操作流程
所有操作在你本地Android项目的根目录(即存放settings.gradle/settings.gradle.kts、根级build.gradle的目录)下执行即可:
- 第一步:执行子模块添加命令
打开终端切到项目根目录后运行如下命令,你可以自定义子模块在项目中的存放路径,比如想统一放第三方依赖就填third_party/livekit-protocol,不指定路径的话默认会在根目录创建protocol文件夹存放子模块代码:
命令执行完成后,Git会自动拉取对应仓库的代码到指定目录,同时在项目根目录生成git submodule add https://github.com/livekit/protocol 自定义的子模块存放路径.gitmodules配置文件,记录子模块的远程地址和本地路径映射。如果之前尝试添加子模块失败报缓存冲突,先执行
git rm --cached 你设置的子模块存放路径清理残留缓存,再重新执行添加命令即可。 - 第二步:提交子模块配置到主仓库
子模块添加完成后,需要把生成的配置文件和子模块引用提交到自己的项目仓库,执行以下命令:git add .gitmodules 你填写的子模块存放路径 git commit -m "chore: add livekit protocol as git submodule" - 第三步:Android工程关联配置(按需操作)
如果需要在项目中直接引用子模块里的Android库代码,打开项目根目录的settings.gradle/settings.gradle.kts,将子模块中对应的Android Library模块引入工程即可,Groovy版配置参考:
后续正常在app模块的build.gradle里添加include ':livekit-protocol' project(':livekit-protocol').projectDir = new File(rootDir, "third_party/livekit-protocol/android")implementation project(':livekit-protocol')就能依赖使用。
后续常用操作说明
- 其他协作者拉取项目代码后,第一次需要执行
git submodule update --init --recursive拉取子模块代码,之后正常拉取主仓库代码时加--recurse-submodules参数就能同步子模块的版本变更。 - 需要更新子模块到上游最新版本时,进入子模块目录切到目标分支拉取对应提交,回到主项目目录提交子模块的版本哈希变更即可。
内容的提问来源于stack exchange,提问作者Pratik Sahay
相关产品推荐
相关产品推荐

