ChatGPT解决这个技术问题 Extra ChatGPT

如何检查 Gradle 依赖项是否有新版本?

在 Android Studio 中,当我在版本号中使用 + 时,例如:
com.android.support:recyclerview-v7:21.+
我收到“避免在版本号中使用 +”警告。

但是当我使用特定版本号时,我不能总是使用最新版本。我的项目中有很多依赖项。

如何检查依赖项是否有更新版本?

当有较新版本的依赖项时,是否有 Android Studio 插件(或类似插件)通知我?

编辑:Android Studio 突出显示过时的 Android 支持库和 Google play 服务。但这不适用于其他自定义库。

https://i.stack.imgur.com/yZ2DO.png

对于更新库的开发者,请参阅:How to update library for new version in Bintray?
至少在 Android 3.0 中,自定义库的更新现在会显示与支持库的问题图像中相同的通知。
@Suragch 这对我在 android studio 3.0.1 中的某些依赖项不起作用
我们可以使用 gradleplease.appspot.com 来检查新的库版本

C
Community

更新(2018 年 5 月 23 日):

较新版本的 Android Studio 不会在“项目结构”对话框中显示版本更新。相反,Adam-s 的答案是 Android Studio 3+ 的正确答案

分析 > “按名称运行检查”

然后搜索“Newer Library Versions Available

以前的方式:

Android Studio 2.2 开始,一个新的 Project Structure 对话框显示您的应用程序正在使用的依赖项列表以及来自本地和远程存储库的可用更新。

通过转到 Android Studio > Settings > Build, Execution, Deployment > Gradle > Experimental 激活它并检查 Use new Project Structure 对话框(感谢@jessehensold)

然后通过转到文件 > 项目结构 > 消息打开它

https://i.stack.imgur.com/cLQjA.png

对于旧版本的 Android Studio,请参阅下面的其他回复。


关于编辑;这是关于 android-studio,因为我正在寻找一个 Android Studio 插件。感谢您的回答,但我已经看到了。
这不再存在于 Android Studio 中(使用 beta 2)。
我必须进入 Preferences>Build, Execution, Deployment>Gradle>Experimental 并检查“Use new Project Structure dialog”
必须转到“依赖项”选项卡才能启用“应用”按钮。一些错误?
我使用 Android Studio 2.3 进行了尝试,但 Project Structure 对话框的 Dependencies 选项卡没有找到我的项目的任何依赖项。
A
Adam S

这现在作为 Lint 检查内置在 Android Studio 中。您可以在此处启用它:

设置 > 编辑器 > 检查 > “可用的较新库版本”

本次检查说明:

可用的较新库版本 此检测器检查中央存储库以查看是否有可用于此项目使用的依赖项的较新版本。这类似于 GradleDependency 检查,检查 Android SDK 工具和库中可用的较新版本,但这适用于任何 MavenCentral 依赖项,并且每次都连接到库,这使其更灵活但也慢得多。

由于速度变慢,这可能会引入我建议定期手动运行它,而不是一直运行它。您可以通过以下方式做到这一点:

分析 > “按名称运行检查”

然后搜索“可用的较新库版本”,并在您的模块上运行它。

编辑:以上应该只适用于 Android Studio 2.3。如果您使用的是旧版本(您应该更新),以下可能会有所帮助:

请注意,您似乎必须启用检查才能手动运行它 - 因此(从 Android Studio 2.0 Beta 2 开始)您需要在设置中找到检查,启用它,然后按名称运行它,然后再次禁用它(恢复以前的性能)。


我不知道我是否做错了什么,但这对我不起作用
对我来说也是一样,领域不在 MavenCentral 上。你的改装版本是这样定义的吗?我的是,但它也找不到它def okhttpVersion = '2.7.2' compile "com.squareup.okhttp:okhttp:$okhttpVersion"
无法找到具有已定义版本的字符串。它能够找到 com.squareup.okhttp:okhttp:2.7.2。同样在 2.0.0-beta4
这会在“检查”选项卡中显示可用的更新,但不会在 build.gradle 中将其突出显示为警告。我还没有找到一个解决方案。
不得不回到这个答案来报告它只适用于 MavenCentral 依赖项。这意味着来自 Jitpack 或其他来源的存储库不会自动更新。获取所有依赖项的最新版本的正确方法是在这个答案 [stackoverflow.com/questions/28538824/… (here)
M
Marcin Orlowski

除了 Android Studio 的内置功能之外,还有一个名为 Gradle Versions Plugin 的不错的 gradle 插件,它可以完全满足您的需求,它具有普通 gradle 扩展的好处,这意味着 绑定到任何 IDE -只是纯粹的 Gradle 东西。

Gradle 版本插件可以以人类可读的纯文本形式创建报告,但也可以将其转储为 JSON 或 XML,这对于自动化/脚本处理非常有用。

用法很简单。添加到您的 gradle 文件后,您只需执行以下操作:

$ ./gradlew dependencyUpdates

它应该生成如下所示的项目依赖关系报告:

------------------------------------------------------------
: Project Dependency Updates (report to plain text file)
------------------------------------------------------------

The following dependencies are using the latest milestone version:
 - com.github.maksim88:PasswordEditText:v0.9
 - com.marcinorlowski:webnet-log:1.0.3
 - com.nulab-inc:zxcvbn:1.2.2

The following dependencies exceed the version found at the milestone revision level:
 - com.hannesdorfmann.fragmentargs:annotation [4.0.0-SNAPSHOT <- 3.0.2]
 - com.hannesdorfmann.fragmentargs:bundler-parceler [4.0.0-SNAPSHOT <- 3.0.2]
 - com.github.bumptech.glide:glide [3.7.0 <- 3.6.1]
 - com.hannesdorfmann.fragmentargs:processor [4.0.0-SNAPSHOT <- 3.0.2]

The following dependencies have later milestone versions:
 - com.github.PhilJay:MPAndroidChart [v2.2.5 -> v3.0.1]
 - com.android.support:appcompat-v7 [25.1.0 -> 25.1.1]
 - com.jakewharton:butterknife [8.4.0 -> 8.5.1]

Generated report file build/dependencyUpdates\report.txt

有关广泛的使用示例,请参阅 docs


惊人的!来到这里寻找一个普通的Java项目。一个不错的通用解决方案,没有 Lint 的 Android 特性。
运行此程序时收到错误 Configuration 'compile' in project ':myapp' is deprecated. Use 'implementation' instead. The CompileOptions.bootClasspath property has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the CompileOptions.bootstrapClasspath property instead.
“可用的较新库版本”方法不起作用,但这是完美的! (我使用多个带有变量的 gradle 文件作为 lib 版本)
我会投票赞成这是长期项目的最佳方法。因为这是一个 Gradle 任务,所以您可以将其添加为您的构建步骤之一。这将允许您进行半自动更新流程。恕我直言,完全自动化是不可能的,但是有一些工具可以尝试做到这一点。我在这里写了更多关于它的内容:medium.com/@thecodeside/…
C
CoolMind

请参阅文件 > 项目结构,然后单击“建议”。我知道,这个解决方案是由 Hemant Sharma 和 Jeremías Gersicich 提出的,但 Android Studio 在 3.4.1 版本中对其进行了更改。

https://i.stack.imgur.com/UjC99.png

在大多数情况下它会有所帮助,但有时库会更改它们的 ID(路径)。所以你有时应该访问他们的网站,看看为什么这些库没有更新这么久。然后手动更新。


其他人在 android studio 3.5 上得到这个屏幕只是空的吗?
@NicolaBeghin,我刚刚检查了空项目并得到了 4 条建议。是的,7 月份有一个术语没有显示建议,但他们修复了这个错误。我想,这是谷歌服务器的问题,有时可能会发生。
不支持Gradle KTS
谢谢@CoolMind!知道为什么这可能不会直接显示在 Android Studio 4.2.1 的 build.gradle 文件中吗?以前,这些建议通过启用设置的 Lint 显示,即设置 > 编辑器 > 检查 > 可用的较新库版本。
太棒了@CoolMind,我创建了一个新帖子 Android Studio Not Showing Suggested Gradle Dependency Updates With Lint 来解决这个问题。
C
Community

已弃用 - 查看接受的现代方式答案

我在下面介绍的工具不适用于新版本的 Android Studio/Gradle,并且其作者不再维护它 (as of 30/10/2016)。因此,应使用已接受答案中提出的解决方案,除非使用旧版本的 Android Studio。

截至 2016 年 1 月,有一个用于 Android Studio 的插件,称为 Dependencies Version Checker,其源代码可在 GitHub 上找到。

它可以通过内置界面添加(设置>插件>浏览存储库...):

https://i.stack.imgur.com/1GES4.png

安装并重新启动后,UI 中会出现以下选项卡:

https://i.stack.imgur.com/g0jnb.png

然后应将相关的 build.gradle 粘贴到 VersionChecker 面板的左侧,并按下 Version Check 按钮。结果是出现在右侧的表格,其中包括粘贴脚本中使用的库的最新版本(如上图所示)。


即使这是我一开始就在寻找的东西,它也无法按预期工作。我在 Github 存储库中打开了一个关于它的问题。 github.com/takuaraki/DependenciesVersionChecker/issues/5
当我点击“检查版本”时,我尝试了这个并得到了一个通用的错误/失败消息气球
@GregEnnis 最新版本的插件有问题。使用旧的或等待更新...
T
Tanya Arora

转到 Android Studio ->首选项->插件(适用于 Mac)和文件 ->设置->插件(适用于 Windows)并搜索“Check for Dependency updates plugin”。安装它并重新启动android studio。您将能够在右侧看到依赖项选项卡,该选项卡将显示任何依赖项是否有可用的新更新。

https://i.stack.imgur.com/TkDPD.png


此插件不会显示所有依赖项 oO 的更新(例如 exoplayer..)
J
Jintin

对于支持库 (com.android.support) 依赖项,有一个更好的选择 - andle

它也可以查询 jcenter 和 maven center。

一次更新所有项目的简单三步。

1.安装:

    $ sudo pip install andle

2.设置sdk:

    $ andle setsdk -p <sdk_path>

3.更新依赖:

    $ andle update -p <project_path> [--dryrun] [--remote] [--gradle]

--dryrun:只在控制台打印结果

--remote: 检查 jcenter 和 mavenCentral 中的版本

--gradle:检查 gradle 版本

有关详细信息,请参阅 https://github.com/Jintin/andle


仅用于支持库?
@osrl 如果您添加 --remote 或 -r 它将解析 jcenter 上的版本。
J
Jeremías Gersicich

我正在处理同样的问题并尝试了答案https://stackoverflow.com/a/35371234/6412430

在 Android Studio 3.4.1 上真正对我有用的是:

File -> Project Structure -> Dependencies

一旦达到这一点,您的项目或模块中包含的所有依赖项都将被列出。过时的将被强调,当您选择一个时,将显示它的详细信息,为您提供更新变量(如果您将其与声明分开)或依赖项的选项。

有点晚了,但这对我有用。


我也找到了这种方法。奇怪的是有人标记了减号。
i
imashnake_

您可以使用 Gradle refreshVersions。它会生成一个 java 属性文件,告诉您哪些版本可用,并允许您更改 all 依赖项实例中的版本号。因此,仅当您需要更改依赖项的版本时才编辑此文件。

Java 属性文件versions.properties 类似于this


H
Hemant Sharma

要更新或推荐您的项目依赖项应与 android 项目相同

FILE -> Project Structure -> MODULES(app) -> Dependencies

当您到达依赖项选项卡时,单击位于窗口右上角的 + 按钮。当您点击 + 选择 Library Dependency 时,它将打开新窗口 Choose Library Dependency 在搜索框中搜索您的依赖项,所有列出的 Android 依赖项都会更新。


谢谢,但此列表还包含我不使用的库,有时不包含我使用的库。 Gson 也是 com.google.code.gson:gson:2.2.4 而实际上是 com.google.code.gson:gson:2.8.5
有时依赖项适用于兼容的 gradle 版本,请检查您是否在项目级 gradle 中使用更新的 gradle