背景
项目拉取一些依赖库需要连指定仓库并且还要连vpn,而有时候vpn又不稳定,导致开发变的异常繁琐。因此想要把本地缓存过的依赖库迁移到私有仓库。
需要用到migrate-local-repo-tool.jar工具,它可以直接将本地maven仓库中的依赖库直接上传到远程仓库(或者符合本地仓库库目录结构样式的其他目录)。
但是比如三方库我们本地仓库中并没有,只存在gradle的缓存目录中,这时就需要将gradle目录中的三方库格式化输出到一个目录中。
需要解决的问题:
- 依赖库缓存在哪里
- 如何格式化输出
- 如何上传
依赖库缓存
依赖库的缓存目录在用户目录下的.gradle/caches目录,但是要找到库的目录就比较困难因为目录太多了,可以用反向查找的方式,在Android Studio中的依赖库列表External Libraries中找到依赖库jar包右键在文件夹中打开就可以找到了
格式化输出
为什么需要格式化输出,因为我们可以发现gradle缓存目录中的库目录结构是groupId作为目录名,而本地.m2仓库中目录结构是groupId分割以后每一段都是一级目录,举例:
com.tyt.goods:dialog:1.0.0 |
因此gradle缓存目录中库目录结构需要格式化为本地仓库中的格式
为了避免误操作污染gradle缓存目录中的依赖库,可以将需要格式化输出的库拷贝到其他目录在做操作
我是用了python脚本来处理格式化输出的
脚本获取地址:migrate-local-repo
仓库上传
格式化输出到目录后就要开始上传,例如格式化输出到temp/release目录下,migrate-local-repo上传命令
java -jar migrate-local-repo-tool.jar -cd "temp/release" -t "你的仓库地址" -u 你的用户名 -p 你的密码 |
注:上面命令中的参数需要根据自己环境做调整,不能无脑复制:smile:
如果terminal出现部署成功的日志说明上传成功,如
Sucessful Deployments: |
至此,将gradle缓存中依赖库迁移至远程私有仓库完成了!