Android gradle编译临时切换库加载原资源库的问题

  事情是这样的,听云sdk之前上线过3.0.0版本,然后由于他们公司版本管理的原因,临时下线掉了该版本,但是此时我们的app已经临近发版,就不大改库了,就用/.gradle缓存里面的jar和pom文件进行编译发版了。后来为了不让后续听云公司发布最新3.0.0的时候,/.gradle里面的缓存会影响到我们,所以我就在无备份情况下,在jenkins服务器上,用如下命令(find ~/.gradle -name newlens | xargs rm -rf)清干净对应的缓存库,修改下次app要上线的听云库版本为2.12.1版本,重新进行编译,OK编译没任何问题,我以为万事大吉。
  然而,同事今天突然跟我说,他在打渠道包时候,报错:“Could not resolve com.networkbench.newlens.agent.android:agent-gradle-plugin:3.0.0”, 我想:糟了。。。缓存里的我清掉了,然后maven库上的他们又已经下线了,此时就报错了,关键是原来机器的对应缓存我还删掉了,不能立即还原。万幸中的是,另外一个同事,本地电脑里面缓存里面还有缓存的 jar和pom 文件,只能找他拿,然后试着以下几种方式看能否完成编译。

尝试一:按照同事机器上缓存的路径,将对应的缓存原封不动copy到jenkins服务器上 ---- 失败
  如下图,同事机器上,对应的缓存路径:
在这里插入图片描述
我将从同事机器拷贝出来的文件,原封不动放到jenkins服务器的~/.gradle目录里,满怀期待地编译,发现失败,还是要联网找对应的3.0.0版本,没有从缓存里面找。为什么? 我怀疑是因为每台电脑下载对应库的时候,缓存时候文件夹的那串md5值其实不一样的,我拷贝别人的放到服务器上,但是服务器却认为不是合理的,所以不采用这个缓存。

尝试二:自己搭建maven库,按照路径放入缺少的库 ---- 成功
   如下是之前的报错信息:
在这里插入图片描述

我观察了下build.gradle里的配置以及报错原因,想要不按照对应的路径,存放对应的缺失的库文件,让他们在上面找不到的情况下,去寻找自己maven库里的,搭建的方法如下,配合修改build.gralde,有本地或者服务器两种方法搭建。
方法一、本地搭建(基于Linux环境),Mac和windows环境应该也适用:
   创建跟上述报错一样的文件目录,但是没有域名,修改build.gralde,添加maven区块,全部url替换成本地路径,如下:

maven {
   url '/home/jayden/NetDomain/blog/source/nexus/content/repositories/snapshots/'
}

存放对应jar和pom的文件路径如下:
在这里插入图片描述

方法二、将相同的目录,部署到自己的静态服务器上,当做maven仓库来下载:
路径一样,直接上代码:

maven {
  url 'https://ifish.site/nexus/content/repositories/snapshots/'
}

   如此即可编译通过了,舒了一口气。但是还有一个问题,若此时缓存~/.gradle里已经有3.0.0版本后,去掉刚添加的maven仓库,再次编译,还是报错,看来还是一定要从对应的原始听云maven上下载的缓存才行。。。于是我又进行了下个尝试。

尝试三:hosts重定向听云域名ip到自己服务器进行下载 ---- 失败
host过去,我以为可以直接从我ip的相同路径上下载对应的库,但是还是报找不到的错误。

   通过这次事件,虽然我临时采用方案二的形式解决了编译问题,但是给我的警醒是,如果删除生产环境上的任何东西,先备份一下,不要贸然删除看起来临时不需要的东西。

原创文章,欢迎转载,转载请注明:ifish.site

作者:JaydenZhou

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JaydenZhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值