为什么gradle没有在其他maven repos中搜索依赖?

时间:2016-08-12 13:54:58

标签: maven gradle build-system dependency-resolution

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

定义了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()

有没有办法对其进行分析,或以某种方式进行调试?

P.S。我可以解决这个问题,如果我将mavenCentral()移动到repos列表中的一个位置,但这会打破另一个子项目依赖项解析的原因也是同样的 - 来自" spring" mavenCentral()中不存在repo。

1 个答案:

答案 0 :(得分:2)

事实上,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'