Gradle: MetaDataParseException: inconsistent module metadata found

在使用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'

先说一下背景:
我在项目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()
}

这个时候便更顺利的把之前的版本拉取下来了,不过为什么先扫描本地就有问题呢?这个有待探究…

你可能感兴趣的:(Java,gradle,java,maven)