【问题标题】:How to check what is the latest version of a dependency to use in gradle如何检查要在 gradle 中使用的最新版本的依赖项
【发布时间】:2014-11-19 15:16:11
【问题描述】:

我总是像这样添加依赖项:

dependencies {
    compile 'com.android.support:mediarouter-v7:19.+'
}

但在最新版本的 Android Studio 中,他们建议不要使用 +,因为它可能会导致错误。如何知道最新版本是什么?我可以尝试 19.y.x 的所有组合,直到 gradle 抱怨,但真正的检查方法是什么?

编辑:有时,that page 帮助我弄清楚。

【问题讨论】:

    标签: android gradle android-studio


    【解决方案1】:

    依赖最新版本确实是一件危险的事情。您的构建可能会在您不进行任何更改的情况下中断,只是因为某些库破坏了向后兼容性。

    了解新版本库何时发布的最简单方法是订阅Bintray 中的新版本通知。

    只需单击软件包页面上的“观看”按钮,每次新版本发布时您都会收到一封电子邮件。然后您就可以更新依赖项,测试它,然后才能使用新版本提交构建脚本。

    【讨论】:

    • 这可能是一种有效的方式,但在特定情况下 com.android.support:mediarouter 是一个 android 支持库,搜索它们的最佳位置不是 Bintray 或 Maven。
    • SDK自带的,不知道有什么问题?您只需要最新的 SDK,并查看 libs 文件夹中的 jar 文件。在您不知情的情况下,它无法用新版本“惊喜”您。为什么需要一种特殊工具来了解最新情况?
    • 从SDK自带的libs/jars中,如何判断使用哪个版本?
    • 只看jar文件名?
    • 我认为这是最酷的方式。我找到了另一个不错的库(一个扩展了我正在使用的库的项目!),它“观看”了我想要的东西。
    【解决方案2】:

    可能还有其他方法,但这是我使用的:

    您可以使用 Android Studio 查找最新版本,只需将 build.gradle 编译行中的库版本号替换为 + ,然后单击窗口右上角的 Sync Now

    以你为例

    dependencies { compile 'com.android.support:mediarouter-v7:+' }

    Android Studio 会弹出一个hint/bulb,里面有Replace with specific version可以点击的选项,里面会填上最​​新版本的+。请看下面的截图:

    如果这第一次不起作用,让 gradle 完成同步,然后重试(将 + 替换为 + 或任何文件修改都可以,现在再次单击同步,提示灯泡将显示)。

    例如,对于您的库,我只是将这一行 compile 'com.android.support:mediarouter-v7:+' 粘贴到我的依赖项下并按照上述过程,Android Studio 填写以下版本

    【讨论】:

    • 它使用 v7:19.1.0 自动完成,但如果我手动输入 v7:19.9.0,它也可以工作(编译和运行)。
    • 如果我使用 19.9.0,它会给我错误,适用于 19.1.0。 please see this。我单击了安装存储库链接,但继续给出错误。如果我使用 19.1.0,就会消失。
    • 这很奇怪...您使用的是什么版本的 AS?我在 0.8.9。我实际上可以放置任何 19.x.y,它会起作用。 20.0.0 也可以,但是 20.0.1 会给我和你一样的错误。
    • 我使用的是最新的 AS 0.8.11。一旦我下载了最新的支持库,+ 技巧也会自动完成到 20.0.0。气泡提示将自动选择可用的最新/正确版本,并停止给出您在问题中提到的警告消息。
    【解决方案3】:

    避免在版本声明中使用+。

    你可以试试andle检查依赖是否过期,还有构建工具版本和sdk版本。

    简单三步:

    1.安装:

        $ sudo pip install andle
    

    2。设置 SDK:

        $ andle setsdk -p <sdk_path>
    

    3.更新依赖:

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

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

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

    【讨论】:

      【解决方案4】:

      如果你想要最新版本,ashoke的答案是正确的。

      但如果您只是想用您当前使用的版本替换“+”(从而保护自己免受未来更新中的错误)

      例如:

       compile 'com.android.support:appcompat-v7:21.0.+'
      

       compile 'com.android.support:appcompat-v7:21.0.3'
      

      (但不使用 23.0.1)

      这是最简单的方法,无需软件

      运行

      $ ./gradlew clean tasks --debug > ~/whatever.txt
      

      然后查找“com.android.support:appcompat-v7:21.0”。

      下面几行你会看到

      “使用来自 Maven 存储库的 com.android.support:appcompat-v7:21.0.3”

      【讨论】:

        【解决方案5】:

        正如其他一些答案已经提到的那样,您不应该在依赖项中使用 +,因为它可能会导致不可预知的构建,所以如果您在有新的更新可用时首先测试您的构建总是更好。

        使用 android studio 2.2 及更高版本的项目结构将向您显示可用的最新依赖项。

        1. 通过转到 Android Studio > 设置 > 构建来激活它, Execution, Deployment > Gradle > Experimental 并检查使用 新的项目结构对话框
        2. 然后通过转到文件 > 项目结构 > Messages 来打开它

        Original Answer

        【讨论】:

        • android studio 3.1 canary 5 上好像没了,谁能确认一下?
        【解决方案6】:

        我使用这两个链接。

        此链接为我提供了最新的 buildTools 版本
        https://developer.android.com/studio/releases/build-tools.html



        这个链接给了我最新的 supportLibraryVersion https://developer.android.com/topic/libraries/support-library/revisions.html

        【讨论】:

          【解决方案7】:

          最近发现了这个。

          转到File -&gt; Project Structure

          选择Module,您要在其中添加依赖项。

          转到Dependencies 标签

          点击+并选择Library Dependency

          从列表中选择您需要的任何库。

          (还有一个搜索选项,但从未尝试过。)

          就是这样。

          完成。

          谢谢。

          【讨论】:

            【解决方案8】:

            如果它是来自 Google 的 maven 存储库的依赖项,那么目前最好的方法是转到 https://maven.google.com ,现在 google 可以让您浏览他们的所有库并查看所有可用版本,包括最新版本。它看起来像这样:

            您甚至可以搜索特定库,然后根据需要展开/折叠它:

            【讨论】:

              猜你喜欢
              • 2015-04-16
              • 2023-02-06
              • 2012-05-09
              • 2017-01-25
              • 1970-01-01
              • 1970-01-01
              • 2010-11-10
              • 2016-03-20
              相关资源
              最近更新 更多