首页 文章

在Gradle中强制传递依赖版本

提问于
浏览
2

我正在玩gradle试图移植我的maven项目,这是我的问题:

在maven中,我们有 <dependencyManagement> ,它为某些依赖项提供了一个公共(默认)版本(只有在子pom中使用时才使用这个工件而没有版本号) . 根据我的理解,它也强制某个版本用于所有传递依赖 . 因此,如果我理解正确,即使我们作为依赖项的工件B依赖于工件C版本1.0,那么我们仍将使用 <dependencyManagement> 中定义的工件C的版本(因此它可能是2.0) . 那是对的吗?

如果是这样,有没有办法在Gradle做类似的事情?我知道替换 <dependencyManagement> 的常用方法是在其中一个构建脚本中创建一个Groovy映射 . 但是我如何强制传递依赖版本呢?如果我使用Gradle 's 2849783 won' t它会影响所有(不仅是传递)依赖(这显然不是我想要的)?

2 回答

  • 0

    在Gradle中,强制一个版本(例如,使用 Configuration.resolutionStrategy.force )将强制它为配置的所有依赖项,直接和传递 . 没有一流的功能只强制版本传递依赖 . 你有一个有效的用例吗?在一天结束时,无论如何,Gradle和Maven都会为依赖项选择单个版本,无论它在依赖树中出现的位置和频率如何 .

  • 8

    有一个ResolutionStrategy功能允许强制包含传递依赖项的工件版本:https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html

相关问题