7

为什么gradle不在所有定义的maven repos中搜索依赖?

回购块定义:

repositories {
    maven {
        name = 'JBoss.org Maven repository'
        url 'https://repository.jboss.org/nexus/content/groups/public'
    }
    maven {
        name = 'spring-milestones'
        url 'http://repo.springsource.org/libs-milestone/'
    }
    mavenCentral()
}

(假设我在子项目中的某个地方net.sf.json-lib:json-lib:2.2.1)我收到:

* What went wrong:
Could not resolve all dependencies for configuration ':myproject:compileClasspath'.
> Could not find json-lib.jar (net.sf.json-lib:json-lib:2.2.1).
  Searched in the following locations:
      http://repo.springsource.org/libs-milestone/net/sf/json-lib/json-lib/2.2.1/json-lib-2.2.1.jar

为什么只有一个搜索位置?显然json-lib存在于.mavenCentral()

有什么方法可以分析它,或者以某种方式调试?

PS如果我mavenCentral()在repos列表中上移一个位置,我可以解决这个问题,但这会以同样的原因破坏另一个子项目的依赖解析——来自“spring”repo的东西在mavenCentral().

4

2 回答 2

3

事实上,gradle 会搜索所有的 maven repos。你可以看到 JBoss repo 不包含 2.2.1 版本的 json-lib,所以,它跳到下一个(spring repo)。

Spring repo 有 2.2.1,但是,这里的问题是工件已指定分发,因此,您只需要修复依赖项:

compile 'net.sf.json-lib:json-lib:2.2.1:jdk15'
于 2016-08-12T14:06:19.657 回答
0

就我而言,依赖关系一切正常,但 gradle 仍然无法从我拥有的 5 个存储库之一中找到工件。帮助我的是--refresh-dependencies选项

IE,gradle clean build --refresh-dependencies

我知道我无法找到确切的问题,但这给了我一个快速的解决方案。请注意,将再次下载所有依赖项,这可能需要一些时间

我的 gradle 版本是 6.5.1

于 2022-01-08T04:17:44.363 回答