一个 gradle 文件中的多个 maven 存储库

Posted

技术标签:

【中文标题】一个 gradle 文件中的多个 maven 存储库【英文标题】:Multiple maven repositories in one gradle file 【发布时间】:2015-07-18 20:09:54 【问题描述】:

所以我的问题是如何将多个 maven 存储库添加到一个 gradle 文件中。

这不起作用:

repositories 
    mavenCentral()
    maven 
        url "http://maven.springframework.org/release"
        url "http://maven.restlet.org"
    

【问题讨论】:

【参考方案1】:

总之你必须这样做

repositories 
  maven  url "http://maven.springframework.org/release" 
  maven  url "https://maven.fabric.io/public" 

详情:

您需要在自己的花括号中指定每个 maven URL。以下是我为要构建的 Web 服务项目处理骨架依赖项的内容:

apply plugin: 'java'

sourceCompatibility = 1.7
version = '1.0'

repositories 
  maven  url "http://maven.springframework.org/release" 
  maven  url "http://maven.restlet.org" 
  mavenCentral()


dependencies 
  compile group:'org.restlet.jee', name:'org.restlet', version:'2.1.1'
  compile group:'org.restlet.jee', name:'org.restlet.ext.servlet',version.1.1'
  compile group:'org.springframework', name:'spring-web', version:'3.2.1.RELEASE'
  compile group:'org.slf4j', name:'slf4j-api', version:'1.7.2'
  compile group:'ch.qos.logback', name:'logback-core', version:'1.0.9'
  testCompile group:'junit', name:'junit', version:'4.11'

Blog

【讨论】:

无论 URL 的相关程度如何,都是这样吗? 我们不应该指望artifactUrls 工作吗? docs.gradle.org/current/dsl/… 可以在init.gradle中使用吗? 如果我也有子项目,在这种情况下,我是否也需要在 configure(subprojects.findAll() ) ** 部分中使用多个 url 的存储库?【参考方案2】:

你必须在你的项目级别 gradle 文件中这样做

allprojects 
    repositories 
        jcenter()
        maven  url "http://dl.appnext.com/" 
        maven  url "https://maven.google.com" 
    

【讨论】:

可以在init.gradle中使用吗?

以上是关于一个 gradle 文件中的多个 maven 存储库的主要内容,如果未能解决你的问题,请参考以下文章

gradle 是不是可以使用优先级高于 jcenter 的 maven 存储库

对于 Maven 存储库凭据,buildscript 中的 Gradle 变量为空

如何在build.gradle之外声明存储库详细信息

如何将 AAR 转换为 JAR

Gradle 将依赖项下载到缓存而不是 Maven 存储库

构建被配置为更喜欢设置存储库而不是项目存储库,但存储库“maven”是由构建文件“build.gradle”添加的