如何让模块中的依赖项优先于顶级存储库中的build.gradle

返回0

我的项目存储库树如下所示:

Project
  module1
    module1.gradle
  module2
    module2.gradle
  ...
  build.gradle

然后在build.gradle文件中有一些依赖关系和一些强制解析策略

  configurations.all {
      resolutionStrategy {
        cacheChangingModulesFor 0, 'seconds'
        force 'org.apache.hadoop:hadoop-common:2.5.0-cdh5.3.3',
      }
  }
  dependencies {
    compile(group: 'org.apache.hadoop', name: 'hadoop-common', version: '2.6.0-cdh5.16.1')
  }

但是,module1.gradle定义了hadoop-common的更高版本,例如

compile group: 'org.apache.hadoop', name: 'hadoop-common', version: '2.5.0-cdh5.3.3'

我想将此升级到我的module1,module2..moduleX以使用'2.6.0-cdh5.16.1'。有些项目不需要升级,应该继续使用旧版本,因此我需要将强制依赖项保留在顶层build.gradle文件中。实际上,我不想接触我不拥有的任何模块。

有没有一种方法可以在模块级别指定始终使用当前模块中定义的内容,而不是从顶级继承build.gradle

丹尼尔(Daniele)

force(..)最高级别语句旨在覆盖模块中指定的任何版本。

您可以force(..)通过force(..)在模块内部放置另一个语句来重新覆盖该语句第二条force语句在顶级语句之后进行评估,因此它将重新覆盖模块版本。

您可以在build.gradle模块文件中放置:

configurations.all {
  resolutionStrategy {
    force 'org.apache.hadoop:hadoop-common:2.6.0-cdh5.16.1'
  }
}

请注意,尽管覆盖和重新覆盖版本会引起混淆。例如,编辑顶层构建的人员将期望他们force正确地应用于所有模块-如果您在模块中重新覆盖它,则情况并非如此。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在gradle.build中添加模块依赖项

Android Gradle-如何在多个存储库中搜索Gradle依赖项

'Fork'git存储库作为gradle中的依赖项

子依赖模块中的Gradle库依赖

无法解析在Build.Gradle依赖项中添加的库

Gradle编译:如何从依赖项中识别组和模块?

如何将您的 github 存储库包含在 gradle 依赖项中

如何从Kotlin DSL build.gradle中的所有依赖项中排除库?

gradle-库在依赖项中重复

如何在 gradle build 中编写依赖项

如何在Gradle中更新依赖项

如何替换gradle中的依赖项的依赖项?

如何在build.gradle中包含多个存储库?

使用gradle解决代理存储库中的ivy依赖项会导致资源丢失

无法在flutter中同步build.gradle中的依赖项

Gradle:如何从模块依赖项运行测试?

将github库添加为gradle中的依赖项

在 Gradle 中只添加库的依赖项,而不是它本身

使用Gradle的POM中缺少Android库依赖项

Gradle:声明顶级构建文件与模块构建文件中的依赖关系?

Android测试模块(Gradle插件1.3):来自非默认Maven存储库的依赖项

如何从gradle中的eclipse .classpath中读取依赖项?

如何在build.gradle文件中修复我的依赖项

如何在build.gradle.kts中定义变量以排除多个传递依赖项

如何使用组,名称,版本,类型的格式在build.gradle中添加类型@jar的依赖项?

如何将依赖项复制到 Gradle 中的 Build 目录

如何将gradle项目定义为Play中的库依赖项?

为什么将存储库添加到 build.gradle 使其找不到依赖项?

在gradle中,我可以编译本地模块并将其用作其他“外部”库的依赖项吗?