gradle 中依赖项的动态版本(使用 +)

Dynamic versions (using +) of dependencies in gradle

我在我的项目中使用 compile 'com.localytics.android:library:3.8+'
我想知道是在创建发布 apk 时还是在每次用户打开应用程序(从 playstore 下载)时选择此依赖项的最新版本。

创建新版本时会下载新版本。在您创建一个新的之前,它没有任何变化。

+这里称为动态依赖。

Simply + 将使用最新或更新的依赖项,但使用动态依赖项(例如,com.localytics.android:library:3.8+)可能会导致意外的版本更新和回归不兼容,如 google 文档

所建议

优点

  • 保持更新
  • 手动更新依赖项可能很乏味

缺点

  • 可能会因 lib 代码的更改而中断您当前的代码流

  • 通常在新版本中会发现一些错误,因此请准备好面对意外行为或崩溃

结论:如 google 所建议,始终指定库版本 check under Adding Support Libraries

您应该避免在依赖项中使用 +

通过这种方式,您以后将无法复制您的构建,因为您无法知道您的应用中使用的版本。

动态版本会为您的构建添加不确定性,并可能给您的应用带来意想不到的行为变化。

要检查可用的较新库版本,您可以使用 lint 检查:

  • 转到设置 > 编辑器 > 检查 > "Newer Library Versions Available"

  • 启用更新的库版本可用检查

  • 转到分析 > "Run Inspection By Name" 并搜索 可用的较新库版本

  • 您将启动 link 检查