Gradle - 强制子依赖项版本

4
我们有一个使用Gradle 4.5的旧应用程序。有人添加了没有明确版本的依赖项。
现在我有一些子依赖关系存在版本冲突。 是否有一种方法可以强制指定子依赖项的版本?
我已经尝试了下面的代码,但它不起作用:
configurations.all {
    resolutionStrategy {
        force 'com.amazonaws:aws-java-sdk-dynamodb:1.11.390'
    }  
}

我的意思是我们使用的aws-java-sdk-s3版本为1.11.390,但它正在下载具有版本1.11.887的dynamodb依赖项,而我需要使用dynamodb版本1.11.390。 - Leonardo
1个回答

1

您应该可以在此处使用 strictlyforce。阅读:

https://docs.gradle.org/current/userguide/dependency_downgrade_and_exclude.html

我希望能够帮助你。该手册更多或少地描述了您的情况。

<< 在评论后进行编辑 >>

忘记了您正在使用gradle 4.5,我认为您没有strictlyforce可用。

另一种方法是在定义引入错误版本的依赖项时排除传递性依赖项:

apply plugin: "java"

repositories { 
  mavenCentral()
}

dependencies { 
  compile('whatever-dependency:is-pulling-in-wrong-version:1.0.0') {
    exclude group: 'com.amazonaws', module: 'aws-java-sdk-dynamodb'
  }
  compile 'com.amazonaws:aws-java-sdk-dynamodb:1.11.390'
}

这将从其他库的传递树中排除 Dynamo 依赖项,并使您保留特定要求的版本。

谢谢,但我已经尝试过了,仍然无法获取旧版本的子依赖项。 - Leonardo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接