【问题标题】:Avoiding Duplicate Repository Declaration in Multi Module Gradle Project在多模块 Gradle 项目中避免重复的存储库声明
【发布时间】:2017-09-16 04:03:27
【问题描述】:

假设我在具有以下配置的多模块 gradle (4.2) 存储库中有两个项目:

项目 A build.gradle:

dependencies {
    compile (group: 'org.example', name: 'dependency-of-vast-importance', version: '17.2') {

}

repositories {
    maven {
        url "http://download.example.org
    }
}

项目 B build.gradle:

dependencies {
  compile project(":projectA")
  compile (group: 'org.anotherdependency', name: 'anotherdependency', version: '1.0')
}
repositories {
    maven {
        url "http://download.anotherdependency.org
    }
}

使用此配置,项目 B 将无法构建 -claiming in cannot find dependency-of-vast-importance。

到目前为止,我发现成功完成构建的唯一“解决方案”需要为 projectB 编写 build.gradle,例如:

dependencies {
  compile project(":projectA")
  compile (group: 'org.anotherdependency', name: 'anotherdependency', version: '1.0')
}
repositories {
    maven {
        url "http://download.anotherdependency.org
    }
    maven {
        url "http://download.example.org
    }
}

这种方法毫无价值,因为它要求我将 ProjectA 的存储库声明复制到依赖它的所有其他项目 - 这违背了依赖管理和模块的目的。

如何避免在项目 B 的 build.gradle 中指定项目 A 所需的所有存储库?

【问题讨论】:

  • 你必须这样做。

标签: gradle build.gradle multi-module


【解决方案1】:

在根 build.gradle 中使用:

allprojects {
    repositories {
        maven { url 'http://download.anotherdependency.org' }
        maven { url 'http://download.example.org' }
    }
}

此代码会将存储库应用于所有项目

【讨论】:

  • 这就是我最终要做的事情——希望 gradle 能够从特定的存储库中获取依赖项。
猜你喜欢
  • 2016-12-21
  • 2022-12-24
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
  • 1970-01-01
  • 2018-10-10
  • 2021-08-20
  • 1970-01-01
相关资源
最近更新 更多