分析和自动执行依赖项升级

想要简化依赖项管理?在流程中添加一些工具可以加快速度,并指明可能需要您多加注意的方面。

自动版本升级

Android Studio 会在编辑器中突出显示过时的库版本,并提供用于升级这些库的快速修复程序。但这需要定期检查您的所有 build 文件。

有许多第三方工具可以自动执行此过程,升级您的 build 文件,并视需要为更改创建拉取请求。它们会查找并更新到每个依赖项的最新可用版本,但您仍需要在发布前分析结果,以确保行为兼容性。一些常见示例如下:

查看可用的升级

Gradle 版本插件可让您更好地控制手动升级。 运行其 dependencyUpdates 任务(通过 ./gradlew :dependencyUpdates)会生成一个报告,其中包含库依赖项的较新版本。这对于检查库状态以及手动定位到您要在给定时间升级的库非常有用。

如果您使用自定义方法(而不是版本目录)指定依赖项版本,这会特别有用。

报告依赖项变更

升级您直接使用的库的版本可能会对应用产生更广泛的影响。您使用的每个库可能都需要其他库依赖项,从而形成一个更大的“传递依赖关系”图。

依赖项守卫会显示应用或库不同版本之间图表中的更改。这对于升级分析来说非常重要,可确保您考虑直接和间接升级。

检测未使用的依赖项和滥用依赖项

保持构建的健康状况有助于提高构建速度,并确保您的应用和库能够访问所需的依赖项。依赖项分析 Gradle 插件提供了一些工具,可用于检查依赖项,确保其在 build 文件中的使用方式正确无误。

其报告包括:

  • 未使用的依赖项
  • 使用的传递依赖项(您应明确声明这些依赖项,以便在您的直接依赖项停止使用它们时,您的应用可以访问它们)
  • 在错误的作用域中声明的依赖项
  • 不必要地使用某些插件
  • 依赖项的 GraphViz 视图

许可管理

每个库的开发者都已向您授予使用许可。您必须遵守许可条款,否则将无法使用该库。有些许可非常宽松,通常只要求在使用时提供通知。有些库被视为“病毒式”库;如果您使用这些库,则必须对您的应用或库应用相同的许可。

许可可能会随任何版本而变化。每次升级时,您都应验证您使用的依赖项的许可是否与您的应用或库兼容。

报告许可

Gradle License Report 插件可报告所有依赖项的许可。升级任何依赖项时,请务必查看此报告。验证许可是否符合您的要求,并确保您遵循其要求的条款。

生成许可通知

许可条款通常要求提供一条通知,供应用用户或库使用方访问。Gradle 许可插件会生成数据或 HTML,以便在应用中显示此类通知。

虽然这会自动满足您在通知中需要提供的大部分信息,但不会报告资源许可(例如,字体、图片或声音所需的许可)或您从互联网复制的代码段的许可。您需要手动跟踪和报告此类使用情况。