gradle - Gradle - 强制子依赖版本
问题描述
我们有一个使用 Gradle 4.5 的旧应用程序。有人在没有明确版本的情况下添加了依赖项。
所以现在我有一些版本冲突的子依赖项。有没有办法强制子依赖版本?
我已经尝试了下面的代码,但它不起作用:
configurations.all {
resolutionStrategy {
force 'com.amazonaws:aws-java-sdk-dynamodb:1.11.390'
}
}
解决方案
您应该可以使用其中之一strictly
或force
此处。阅读:
https://docs.gradle.org/current/userguide/dependency_downgrade_and_exclude.html
应该有帮助。该手册或多或少准确地描述了您的方案。
<<评论后编辑>>
忘记了您使用的是 gradle 4.5,我认为您没有strictly
并且force
可以使用。
另一种方法是在定义引入错误版本的依赖项时排除传递依赖项:
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 依赖项,并为您提供您特别要求的版本。
推荐阅读
- php - 有没有办法防止 Guzzle 在 POST 请求中将 [] 附加到具有多个值的字段名称?
- java - 响应中返回的空 Elasticsearch 聚合
- python - Python:获取 LZ4 文件的未压缩文件大小
- reactjs - ApolloProvider 未传递客户端实例。确保您通过“客户”道具传递您的客户
- sql-server - 如何根据基于表的函数的输出更新表列
- c - 如何使用 GUID_DEVINTERFACE_DISK 过滤 CM_Get_Device_Interface_List?
- c++ - 尝试在 Mac OS 上编译 Ardor 时出错
- asp.net - ASP.net WebForms 页面是否保持数据库连接?
- angular - 如何在 html 模板中打印 formControlName 值
- reactjs - 带有 React 测试库的引导表单控件