Gradle:为依赖项指定适当的repo

Gradle:为依赖项指定适当的repo,gradle,build.gradle,Gradle,Build.gradle,我有几个回购协议和很多依赖关系。 在build.gradle中看起来是这样的: repositories { maven {url "A"} maven {url "B"} } dependencies { compile 'libA' compile 'libB' compile 'libC' } 有没有办法指定我将从一个repo(a)下载libA,从另一个repo(B)下载libB和libC?没有办法将依赖项与存储库关联起来。存储库将始终按照其声

我有几个回购协议和很多依赖关系。 在build.gradle中看起来是这样的:

repositories {
    maven {url "A"}
    maven {url "B"}
}


dependencies {
    compile 'libA'
    compile 'libB'
    compile 'libC'
}

有没有办法指定我将从一个repo(a)下载libA,从另一个repo(B)下载libB和libC?

没有办法将依赖项与存储库关联起来。存储库将始终按照其声明的顺序进行搜索。

从2019年1月起,这是可能的。假设您有针对oracle deps的特定回购协议:

 maven {
    url 'https://artifactory.mycompany.com/somepath/oracle-binaries/'
    content {
        includeGroupByRegex "com\\.oracle.*"
    }
 }
注:这至少需要5.1级


请参见

为什么需要这样做?libA是否也存在于repoB中,libB/libC是否存在于repoA中,但存在您不想解析的不同版本?我不认为gradle支持用户提供的最新策略或冲突策略,所以您可能会被卡住。在gradle 4.3之后,这会变得相关吗?请参见回答@Matt,这通常是在从专有供应商导入软件时完成的。如果他们只是把代码放在Maven或通常的地方,我们就不必配置这些东西……如果在上面的例子中,两个Maven repo都包含一个“libZ”,这是否意味着libA将从Maven repo a中提取?如果找到匹配的版本,是的。这个答案是过时的,不应该被接受。看见