gpt4 book ai didi

java - 使用相同依赖项的多个版本构建

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:49:26 25 4
gpt4 key购买 nike

Android 应用程序的两个组件依赖于同一个库的两个不同版本。 (谷歌 protobuf)。

即。 模块 1 依赖于 protobuf2,而模块 2 需要 protobuf3

这两个版本的必需部分互斥,因此不可互换

到目前为止,gradle 在内部使用两个版本中的最新版本,一个模块在缺少方法时中断。

是否可以强制 gradle 对 2 的依赖使用版本 2,对 3 的依赖使用版本 3?或者有什么可能的替代方案来解决此类问题?

干杯。

最佳答案

我想,如果您的各个模块有不同的 build.gradle 文件,并且这些模块由某个父 build.gradle 文件链接,那么就不会有任何问题。

我不是 gradle 方面的专家,但长期使用 maven,它们在本质上有些相似。

在maven中,我可以在不同模块的pom文件中声明不同版本的相同依赖:

<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.2.2</version>
</dependency>

在另一个 pom 文件中,您可以声明不同的版本:

<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.13.2</version>
</dependency>

现在,您可以看到两个不同版本的 jar 将添加到不同模块的“Maven-dependencies”下。

在同一个 pom 文件中,如果不使用 profiling 是不可能的。否则它总是会从 2-3 个不同版本的 jar 中选择最接近它的依赖树的 jar。

关于java - 使用相同依赖项的多个版本构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46275035/

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