如何检查 Gradle 依赖项是否有新版本?
How to check if Gradle dependency has new version?
在 Android Studio 中,当我在版本号中使用 +
时,如:
com.android.support:recyclerview-v7:21.+
我收到“避免在版本号中使用 +”警告。
但是当我使用特定版本号时,我不能总是使用最新版本。我的项目中有很多依赖项。
如何检查依赖项是否有更新的版本?
是否有 Android Studio 插件(或类似的东西)在有更新版本的依赖项时通知我?
编辑:
Android Studio 突出显示了过时的 Android 支持库和 Google 播放服务。但这不适用于其他自定义库。
更新 (05/23/18):
较新版本的 Android Studio 不会在“项目结构”对话框中显示版本更新。相反,亚当的答案是 Android Studio 3+
的正确答案
Analyze > "Run Inspection By Name"
然后搜索“Newer Library Versions Available
”
以前的方法:
从 Android Studio 2.2
开始,一个新的 Project Structure
对话框会显示您的应用正在使用的依赖项列表以及来自本地和远程存储库的可用更新。
- 转到
Android Studio > Settings > Build, Execution, Deployment > Gradle > Experimental
激活它并检查 Use new Project Structure dialog
(感谢@jessehensold)
- 然后转到
File > Project Structure > Messages
打开它
对于旧版本的 Android Studio,请参阅下面的其他回复。
对于支持库 (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
已弃用 - 现代方式
我在下面介绍的工具不适用于 Android Studio / Gradle 的新版本,并且其作者不再维护它 (as of 30/10/2016)。因此,应使用已接受答案中提供的解决方案,除非使用旧版本的 Android Studio。
截至 2016 年 1 月,Android Studio 有一个插件可以做类似的事情,称为 Dependencies Version Checker,其来源可以在 GitHub.
可以通过built-in界面添加(设置>插件>浏览存储库...):
安装并重启后,UI出现如下标签:
然后应将相关的 build.gradle
粘贴到 VersionChecker 面板的左侧,然后按下 Version Check 按钮。结果是出现在右侧的 table,其中包括粘贴脚本中使用的库的最新版本(如上图所示)。
这现在作为 Lint 检查内置于 Android Studio。您可以在此处启用它:
Settings > Editor > Inspections > "Newer Library Versions Available"
本次检查说明:
Newer Library Versions Available
This detector checks with a central repository to see if there are newer versions available for the dependencies used by this project. This is similar to the GradleDependency check, which checks for newer versions available in the Android SDK tools and libraries, but this works with any MavenCentral dependency, and connects to the library every time, which makes it more flexible but also much slower.
由于这可能导致速度变慢,我建议 运行 定期手动启用它,而不是一直打开它。您可以通过以下方式做到这一点:
Analyze > "Run Inspection By Name"
然后在您的模块上搜索 "Newer Library Versions Available" 和 运行。
编辑:以上应该只适用于 Android Studio 2.3。如果您使用的是旧版本(您应该更新),以下内容可能会有所帮助:
请注意,您必须启用检查才能手动 运行 - 因此(从 Android Studio 2.0 Beta 2 开始)您需要在设置中找到检查,启用它,然后按名称 运行 它,然后再次禁用它(以恢复以前的性能)。
除了 Android Studio 的 built-in 功能之外,还有一个名为 Gradle Versions Plugin 的不错的 gradle 插件,它可以完全满足您的需求,并且具有简洁 gradle 扩展,这意味着 不 绑定到任何 IDE - 只是纯粹的 Gradle 东西。
Gradle 版本插件可以以人类可读的纯文本形式创建报告,但也可以将其转储为 JSON 或 XML,这对于 automated/scripted 处理非常有用.
用法非常简单。添加到您的 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 以获取大量使用示例。
要更新或推荐您的项目依赖项应与 android 项目相同
FILE -> Project Structure -> MODULES(app) -> Dependencies
当您到达依赖项选项卡时,单击位于 window 右上角的 +
按钮。
当你点击 +
Select Library Dependency
它将打开 New window for Choose Library Dependency
在搜索框中搜索你的依赖项,所有列出的 Android 依赖项已更新。
我正在处理同样的问题并尝试了答案
在 Android Studio 3.4.1 上真正对我有用的是:
File -> Project Structure -> Dependencies
完成此操作后,将列出项目或模块中包含的所有依赖项。过时的将带有下划线,当您 select 一个时,将显示其详细信息,为您提供更新变量(如果您将其与声明分开)或依赖项的选项。
有点晚了,但这对我有用。
请参阅“文件”>“项目结构”,然后单击“建议”。我知道,这个解决方案是由 Hemant Sharma 和 Jeremías Gersicich 建议的,但是 Android Studio 已经在 3.4.1 版本中更改了它。
在大多数情况下它会有所帮助,但有时图书馆 更改其 ID(路径)。因此,您有时应该访问他们的站点,看看为什么这些库这么长时间没有更新。然后手动更新。
转到 Android Studio -> 首选项 -> 插件(对于 Mac)和文件 -> 设置 -> 插件(对于 windows)并搜索“Check for Dependency updates plugin”。
安装它并重新启动 android studio。您将能够在右侧看到“依赖项”选项卡,该选项卡将显示是否有任何依赖项有可用的新更新。
您可以使用 Gradle refreshVersions。它会生成一个 java 属性文件,告诉您可用的版本并允许您更改 all 依赖实例中的版本号。因此,只有在需要更改依赖项的版本时才编辑此文件。
java 属性文件 versions.properties 类似于 this。
在 Android Studio 中,当我在版本号中使用 +
时,如:
com.android.support:recyclerview-v7:21.+
我收到“避免在版本号中使用 +”警告。
但是当我使用特定版本号时,我不能总是使用最新版本。我的项目中有很多依赖项。
如何检查依赖项是否有更新的版本?
是否有 Android Studio 插件(或类似的东西)在有更新版本的依赖项时通知我?
编辑:
Android Studio 突出显示了过时的 Android 支持库和 Google 播放服务。但这不适用于其他自定义库。
更新 (05/23/18):
较新版本的 Android Studio 不会在“项目结构”对话框中显示版本更新。相反,亚当的答案是 Android Studio 3+
的正确答案Analyze > "Run Inspection By Name"
然后搜索“Newer Library Versions Available
”
以前的方法:
从 Android Studio 2.2
开始,一个新的 Project Structure
对话框会显示您的应用正在使用的依赖项列表以及来自本地和远程存储库的可用更新。
- 转到
Android Studio > Settings > Build, Execution, Deployment > Gradle > Experimental
激活它并检查Use new Project Structure dialog
(感谢@jessehensold) - 然后转到
File > Project Structure > Messages
打开它
对于旧版本的 Android Studio,请参阅下面的其他回复。
对于支持库 (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
已弃用 - 现代方式
我在下面介绍的工具不适用于 Android Studio / Gradle 的新版本,并且其作者不再维护它 (as of 30/10/2016)。因此,应使用已接受答案中提供的解决方案,除非使用旧版本的 Android Studio。
截至 2016 年 1 月,Android Studio 有一个插件可以做类似的事情,称为 Dependencies Version Checker,其来源可以在 GitHub.
可以通过built-in界面添加(设置>插件>浏览存储库...):
安装并重启后,UI出现如下标签:
然后应将相关的 build.gradle
粘贴到 VersionChecker 面板的左侧,然后按下 Version Check 按钮。结果是出现在右侧的 table,其中包括粘贴脚本中使用的库的最新版本(如上图所示)。
这现在作为 Lint 检查内置于 Android Studio。您可以在此处启用它:
Settings > Editor > Inspections > "Newer Library Versions Available"
本次检查说明:
Newer Library Versions Available
This detector checks with a central repository to see if there are newer versions available for the dependencies used by this project. This is similar to the GradleDependency check, which checks for newer versions available in the Android SDK tools and libraries, but this works with any MavenCentral dependency, and connects to the library every time, which makes it more flexible but also much slower.
由于这可能导致速度变慢,我建议 运行 定期手动启用它,而不是一直打开它。您可以通过以下方式做到这一点:
Analyze > "Run Inspection By Name"
然后在您的模块上搜索 "Newer Library Versions Available" 和 运行。
编辑:以上应该只适用于 Android Studio 2.3。如果您使用的是旧版本(您应该更新),以下内容可能会有所帮助:
请注意,您必须启用检查才能手动 运行 - 因此(从 Android Studio 2.0 Beta 2 开始)您需要在设置中找到检查,启用它,然后按名称 运行 它,然后再次禁用它(以恢复以前的性能)。
除了 Android Studio 的 built-in 功能之外,还有一个名为 Gradle Versions Plugin 的不错的 gradle 插件,它可以完全满足您的需求,并且具有简洁 gradle 扩展,这意味着 不 绑定到任何 IDE - 只是纯粹的 Gradle 东西。
Gradle 版本插件可以以人类可读的纯文本形式创建报告,但也可以将其转储为 JSON 或 XML,这对于 automated/scripted 处理非常有用.
用法非常简单。添加到您的 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 以获取大量使用示例。
要更新或推荐您的项目依赖项应与 android 项目相同
FILE -> Project Structure -> MODULES(app) -> Dependencies
当您到达依赖项选项卡时,单击位于 window 右上角的 +
按钮。
当你点击 +
Select Library Dependency
它将打开 New window for Choose Library Dependency
在搜索框中搜索你的依赖项,所有列出的 Android 依赖项已更新。
我正在处理同样的问题并尝试了答案
在 Android Studio 3.4.1 上真正对我有用的是:
File -> Project Structure -> Dependencies
完成此操作后,将列出项目或模块中包含的所有依赖项。过时的将带有下划线,当您 select 一个时,将显示其详细信息,为您提供更新变量(如果您将其与声明分开)或依赖项的选项。
有点晚了,但这对我有用。
请参阅“文件”>“项目结构”,然后单击“建议”。我知道,这个解决方案是由 Hemant Sharma 和 Jeremías Gersicich 建议的,但是 Android Studio 已经在 3.4.1 版本中更改了它。
在大多数情况下它会有所帮助,但有时图书馆 更改其 ID(路径)。因此,您有时应该访问他们的站点,看看为什么这些库这么长时间没有更新。然后手动更新。
转到 Android Studio -> 首选项 -> 插件(对于 Mac)和文件 -> 设置 -> 插件(对于 windows)并搜索“Check for Dependency updates plugin”。 安装它并重新启动 android studio。您将能够在右侧看到“依赖项”选项卡,该选项卡将显示是否有任何依赖项有可用的新更新。
您可以使用 Gradle refreshVersions。它会生成一个 java 属性文件,告诉您可用的版本并允许您更改 all 依赖实例中的版本号。因此,只有在需要更改依赖项的版本时才编辑此文件。
java 属性文件 versions.properties 类似于 this。