局域网中搭建了Nexus托管本地打包的aar,正常情况下,把修改完成的库推送到仓库后,其他项目引用Snapshot版本的依赖,同步后会马上下载最新的包,但是当第二次+推送后,就没有重新下载最新的包,导致代码一直飘红,但是build的时候,可以看到输出的日志中有Download http://xxx, took xx ms (xxx kB) ,就是刚上传的最新的包,结果编译成功。
代码飘红,编译成功,多次清除缓存,重启均无效,重新上传aar也不行。
Cannot find a version of xxx' that satisfies the version constraints: Dependency path 'xxx:unspecified' --> 'xxx' Constraint path "xxx:unspecified' --> 'xxx:{strictly xxx-SNAPSHOT}' because of the following reason: debugRuntimeClasspath uses version xxx-SNAPSHOT 结果就是没能把最新的包弄下来,还是没用C:\Users\xxx\.gradle\caches 目录,重新打开项目,等待所有依赖下载完毕,恢复正常经过我一个个文件夹排除,最终找到如下依赖版本的更新受到如下目录影响:
找到全局的gradle缓存目录一般是C:\Users\xxx\.gradle\caches\,我这里用的是gradle 7.6.1,所以准确来说,我们的目标文件夹是C:\Users\xxx\.gradle\caches\7.6.1\,然后我们会发现里面有个md-rule目录,然后执行如下操作:
Android Studio关闭;Android Studio,把当前项目的缓存清理掉(Build--clean Project),再执行Sync 同步项目,就会把当前的依赖重新下载一遍,可以从Build输出窗口中看到下载的包已经是最新的了。