在多模块Gradle Project中避免使用重复的存储库声明



,假设我在多模块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将无法构建 - 在无法找到依赖性的vast-ympressance。

到目前为止,我发现成功完成构建的唯一"解决方案"需要编写构建。

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所需的所有存储库?

在root build.gradle中使用:

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

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

最新更新