如何将Gradle依赖项更新到其最新版本

Jar*_*lls 24 android gradle android-build android-package-managers android-studio

是否有一种简单的方法可以让gradle更新其最新可用版本的依赖项?

为了构建可重复性,我的build.gradle文件中的所有依赖项都使用这样的版本号定义:

dependencies {
    compile 'namespace:package1:version'
    compile 'namespace:package2:version'
    compile 'namespace:package3:version'
}
Run Code Online (Sandbox Code Playgroud)

我想定期将每个包更新到最新版本.通常这是我在发布后为新冲刺做的第一件事.

对于每个包,手动执行此操作真的很痛苦.理想情况下,我想要一个命令为我更新build.gradle文件,但至少是一个命令,打印出哪个包需要更新以及最新版本号是什么.

在ruby land我会运行bundler update.

Jar*_*lls 20

这就是我能想到的.如果手动方法较少,我会很乐意接受另一个答案.

  1. 在Android工作室中,我用一个加号示例替换每个依赖项版本: compile 'namespace:package1:+'

  2. 同步或构建项目,这将导致所有依赖项被解析为其最新版本.

  3. 在Android Studio中,将光标放在build.gradle中的每个依赖关系行上,然后按alt +进入菜单弹出,您可以选择替换为特定版本

  • 请参阅[gradle-versions-plugin](https://github.com/ben-manes/gradle-versions-plugin). (5认同)

Gor*_*cyn 7

这不是一个很好的做法,因为库可以包含可能破坏您的代码的更改.

一种常见的"容忍"语法

compile 'namespace:package:major_version.minor_version.revision'
Run Code Online (Sandbox Code Playgroud)

会是这样的

compile 'namespace:package:1.0.+'
Run Code Online (Sandbox Code Playgroud)

考虑修订版本被库作者用作错误修复和改进更新

注意:我刚刚做到了,你可以做到

compile 'namespace:package:+'
Run Code Online (Sandbox Code Playgroud)

编辑:
一个证明概念我的最新评论,你可能需要测试.
这是在5分钟内完成的,所以不要指望它是完美的也不是灵活的.


小智 7

我也深受其苦。检查依赖项的最佳方法(即使是手动)是检查项目结构并搜索依赖项名称并查看是否有更新的版本。

该查询仅检查 Maven 存储库中存在的依赖项的问题。至少它已经适用于谷歌。

在此输入图像描述

在此输入图像描述

在此输入图像描述

注意:如果您选择在新版本中添加依赖项,这将在您的 App Gradle 中添加口是心非,因此请务必删除旧的依赖项行。

##################

另一种可能的快速修复是通过命令行:

./gradlew app:dependencies
Run Code Online (Sandbox Code Playgroud)

这将生成如下所示的输出。请注意,星号指向可能的新现有版本。

在此输入图像描述


Rob*_*ill 6

添加到build.gradle

plugins {
  id 'com.github.ben-manes.versions' version '0.17.0'
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以gradle dependencyUpdates获取新版本的报告。与同名的Maven插件不同,似乎还没有一种自动更新的方法build.gradle

更多文档:https : //github.com/ben-manes/gradle-versions-plugin

  • 现在有一种自动更新依赖项的方法:https://github.com/patrikerdes/gradle-use-latest-versions-plugin (2认同)