假设,我想用Retrofit 2.0.0依赖创建android库。如果使用我的库的开发人员也会在他的项目中依赖于Retrofit较低版本(即1.9.0),gradle将如何解决这个问题呢?另外,在我自己的库中使用像Retrofit这样的库来简化代码是不是很糟糕?
答案 0 :(得分:3)
Gradle有许多依赖项解析策略,您可以查看官方Gradle用户指南的dependency management部分。特别是在52.2.3。解决版本冲突。
最常见的策略是最新的:
最新:使用最新版本的依赖项。这是Gradle的默认策略,只要版本向后兼容,它通常是一个合适的选择。
失败:
失败:版本冲突导致构建失败。此策略要求在构建脚本中显式解决所有版本冲突。有关如何明确选择特定版本的详细信息,请参阅ResolutionStrategy。
因此,gradle构建脚本中依赖项解析的行为取决于使用的解析策略。在大多数情况下,将使用较新的版本。
诸如" 之类的问题在我自己的库中使用像Retrofit这样的库来简化代码是不是很糟糕?"对我来说,主要是基于意见。你可以使用你需要的任何东西,特别是如果你不能做任何事情,或者你自己实施它需要太长时间。像Gradle这样的工具可以简化您的生活,并尝试解决您可以通过传递依赖性捕获的大多数问题,并且您不必担心它。如果你没有创建一些广泛使用的库,毫无疑问应该在任何地方运行。