在使用gradle编译的时候报错:inconsistent module metadata found,期望的是 1.8.8-SNAPSHOT 但是发现 1.9.0-SNAPSHOT版本
Caused by: org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.MetaDataParseException: inconsistent module metadata found. Descriptor: ..., Errors: bad version: expected='1.8.8-SNAPSHOT' found='1.9.0-SNAPSHOT'</i>
先说一下背景:
我在项目A开发需求A,升级了依赖项目B的版本,为1.9.0-SNAPSHOT,打包install到我本地,后面为了开发项目A的需求B,它依赖项目B之前的版本1.8.8-SNAPSHOT(之前上传到了自己公司的仓库,即下面的自定义仓库),这时我编译项目A报错了。
我的项目A的gradle配置如下:
repositories {
mavenLocal()
maven {
url "自定义仓库"
}
mavenCentral()
jcenter()
}
- 清除本地maven仓库中项目B的所有包(在用户目录下的
.m2
目录),还是一样的报错 - 清除本地gradle 缓存(在用户目录下的
.gradle
目录),还是一样的报错
解决方案:
突然想到,我只是把项目B的1.9.0-SNAPSHOT版本打包到我本地了,同时在我的配置里是先扫描本地(mavenLocal()
),这个时候报错应该是我本地的1.9.0-SNAPSHOT
版本东西没清理干净,如果我配置里先扫描自定义仓库呢?于是把gradle配置改为
repositories {
maven {
url "自定义仓库"
}
mavenLocal()
mavenCentral()
jcenter()
}
这个时候便更顺利的把之前的版本拉取下来了,不过为什么先扫描本地就有问题呢?这个有待探究…