gpt4 book ai didi

maven - 在父子项目中使用不同版本的库

转载 作者:行者123 更新时间:2023-12-03 05:09:04 28 4
gpt4 key购买 nike

我有一个带有build.gradle的项目项目,如下所示。

dependencies{
compile 'com.google.guava:guava:17'
}

我还有一个名为 的父项目,带有build.gradle,如下所示。
dependencies{
compile project(':child')
compile 'com.google.guava:guava:23'
}

现在我的问题是子项目在运行时将使用哪个版本?我知道Gradle依赖树显示 17 -> 23。但这是否意味着 也将使用较新版本的 Guava ?如果我想在 中使用 guava:23但又缺少 使用的某些类怎么办?

如果我不控制 并将其作为外部依赖项包含在父项中,该怎么办:
compile 'xxx:child:1.0'
这是否意味着在 做到之前,我将永远无法升级 Guava 版本?

最佳答案

在Java中,类路径上最多可以有一个库版本(或者,至少其他所有情况都会引起麻烦...)。

因此,如果您的“ parent ”使用“ child ”并且他们都使用了 Guava ,则需要找到适合他们的 Guava 版本。

通常,如果Gradle在依赖关系树上找到多个版本,则使用依赖关系的最新版本。您当然可以得到更精细的控制,但是很长一段时间没有使用Gradle(只有Maven,您的直接依赖项始终是赢家,而其他冲突则通过dependencyManagement来解决)。

关于maven - 在父子项目中使用不同版本的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51417234/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com