问题
我们在工程中使用com.groupId:dependName:+来依赖最高版本。当我们对Nexus中的该依赖包降级(删除原来的最高版本,更新Index)。我们的本地依赖会出错
原因
使用+时,Gradle会拿Gradle本地缓存与Nexus(多个仓库取多个仓库中最高版本)中的最高版本号进行比对。如果Nexus中存在更高版本,则下载Nexus中的版本缓存于本地maven仓库和Gradle缓存仓库。因此如果本地仓库存有最高版本,将导致仍然使用原最高版本jar。如果本地没有而Gradle缓存中有则会报错找不到这个jar。
解决
1.Nexus中删除最高依赖包,并更新Index
2.删除本地Maven仓库
rm -rf ~/.m2/repository/groupId*
2.删除Gradle依赖缓存库
rm -rf ~/.gradle/caches/modules-2/files-2.1/groupId*
rm -rf ~/.gradle/caches/transforms-1/files-1.1/dst-higher-version.jar
rm -rf ~/.gradle/caches/modules-2/metadata-2.58/descriptors/groupId*
3.工程对依赖清理
cleanBuildCache