And*_*dan 5 android gradle build.gradle android-gradle-plugin
似乎我有毕加索库,2.4.0,但 twitter 也使用库的 2.3.2 版本。我的问题是...... 2.3.2 库是否与较新版本一起下载?或者只是 2.4.0 被下载并被 twitter 使用?我应该排除 2.3.2 一个,twitter 会自动使用 2.4.0 吗?这安全吗?较新的版本可能与 twitter 库不兼容,不是吗?
我很困惑在这种情况下我应该如何进行。我应该排除哪个库(如果我可以排除一个)。
gradle -q app:dependencyInsight --dependency picasso --configuration compile
com.squareup.picasso:picasso:2.4.0 (conflict resolution)
\--- compile
com.squareup.picasso:picasso:2.3.2 -> 2.4.0
\--- com.twitter.sdk.android:tweet-ui:1.1.0
+--- compile
\--- com.twitter.sdk.android:twitter:1.1.1
\--- compile
(*) - dependencies omitted (listed previously)
Run Code Online (Sandbox Code Playgroud)
根据Gradle 文档:
Gradle 提供以下冲突解决策略:
最新:使用最新版本的依赖项。这是 Gradle 的默认策略,只要版本向后兼容,通常是合适的选择。
失败:版本冲突导致构建失败。此策略要求在构建脚本中明确解决所有版本冲突。有关如何明确选择特定版本的详细信息,请参阅 ResolutionStrategy。
所以 Gradle 将使用 Picasso 2.4.0 管理依赖项。
这会是一个问题吗?可能。如果 Twitter 使用从 2.3.x 更改为 2.4 的方法和/或签名,您将遇到问题。如果它们彼此向后兼容,您将不会遇到任何问题。
我现在看到Twitter SDK实际上已经将他们的 Picasso 库升级到了 2.5.2(最新的)。如果您的项目导入 Picasso,那么您也可以更新它(并且可能应该)。如果它是另一个模块的依赖项,那么您也可以更新该模块。
另一种选择是将 Picasso 降级到 2.3.2 或使用ResolutionStrategy来使用较低版本。除非你必须,否则我不会推荐这个。
| 归档时间: |
|
| 查看次数: |
4649 次 |
| 最近记录: |