android - gradle如何解决Retrofit等不同版本的重复依赖?

标签 android gradle retrofit

假设,我想创建具有 Retrofit 2.0.0 依赖项的 android 库。如果将使用我的库的开发人员在他的项目中也将依赖于 Retrofit 较低版本(即 1.9.0),gradle 将如何解决这个问题?另外,在我自己的库中使用像 Retrofit 这样的库来简化代码是不是一种不好的方法?

最佳答案

Gradle有很多依赖解析策略,你可以看看dependency management官方 Gradle 用户指南的一部分。特别是在 52.2.3。解决版本冲突。

最常见的策略是最新的:

Newest: The newest version of the dependency is used. This is Gradle's default strategy, and is often an appropriate choice as long as versions are backwards-compatible.

失败:

Fail: A version conflict results in a build failure. This strategy requires all version conflicts to be resolved explicitly in the build script. See ResolutionStrategy for details on how to explicitly choose a particular version.

因此,gradle 构建脚本中依赖项解析的行为取决于使用的解析策略。在大多数情况下,将使用较新的版本。

像“在我自己的库中使用像 Retrofit 这样的库来简化代码是不是一种糟糕的方法?”之类的问题主要是基于意见,对我来说。您可以使用您需要的任何东西,特别是如果您没有它就无法做某事,或者您自己实现它会花费太长时间。像 Gradle 这样的工具旨在简化您的生活,并尝试解决您可以通过传递依赖遇到的大多数问题,而您不必为此担心太多。如果您没有创建一些广泛使用的库,那么毫无疑问,它应该随处运行。

关于android - gradle如何解决Retrofit等不同版本的重复依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079042/

相关文章:

android - 在 Android 中启用 GPS

android - 如何在没有 fragment 的情况下使用抽屉导航?

spring - Spring MultipartFile导致表单验证未映射

gradle - 如何使用Gradle动态创建多个ZIP文件?

如果已经作为根目录在后台堆栈中,Android Activity 未启动?

android - RecyclerView单击不起作用,但单击两次时起作用

android - 无法在现有的Android Studio项目上连接到Firebase

android 基本认证 okhttpclient

java - 如何使用 Retrofit 发出请求

java - 如何将 SSL 证书添加到 okHttp 双向 TLS 连接?