Gradle依赖项更新

时间:2014-07-25 11:08:11

标签: android gradle android-studio android-gradle build.gradle

在Android Studio中使用Gradle的一个优点是它有助于依赖管理。因此,如果我在build.gradle文件中使用了特定版本的库, 那么一旦更高版本可用,我将如何强制它更新依赖版本?

build.gradle中的一些依赖项被指定为

dependencies {
    compile project(':facebookSDK')
    compile files('libs/picasso-2.1.1.jar')
    compile files('libs/crouton-1.8.1.jar')
}

3 个答案:

答案 0 :(得分:10)

  

在Android Studio中使用Gradle的一个优点是它有助于依赖管理。

不是你使用它的方式。

  

因此,如果我在build.gradle文件中使用了特定版本的库,那么一旦更高版本可用,我将如何强制它更新依赖版本?

在您的情况下,您需要下载新的JAR,将其放入libs/,然后更新build.gradle以匹配。

首选方法是删除这些JAR,并将两个compile files语句替换为从Maven Central或其他工件存储库中删除依赖项的语句。您可以通过Gradle, please站点找到适用于流行开源库的正确语句。

在您的情况下,您将使用:

compile 'com.squareup.picasso:picasso:2.3.3'
compile 'de.keyboardsurfer.android.widget:crouton:1.8.5'

这些将要求您作为repositories关闭的同伴关闭dependencies

repositories {
    mavenCentral()
}

这可能已经存在。

这些compile语句仍然会将您固定到这些库的特定版本,但转移到新版本将是更新compile语句的简单问题,Gradle将下拉新的依赖项在你的下一个版本中。

如果需要,可以使用通配符(例如2.3.+)替换部分版本号。在这种情况下,这将导致Gradle自动更新到库的新补丁级别。一些开发人员不赞成这种方法,因为它很方便,但它确实降低了你能够重现构建的能力(例如,你需要重新编译代码的一些旧分支,现在你不知道什么版本当时正在使用的神器。)

答案 1 :(得分:3)

当您从本地项目编译文件时,我不认为您可以自动编译新的个人jar版本(如果可用)。您可以执行的操作是:

,而不是编译单个文件

compile fileTree(dir: 'libs', include: '*.jar')

这将编译libs目录中的所有jar文件,因此您将始终拥有最新版本。

您正在使用的两个库都可以从mavencentral编译为依赖项。

compile 'de.keyboardsurfer.android.widget:crouton:1.8.5'
compile 'com.squareup.picasso:picasso:2.3.3'

如果您想确保获得最新版本,请使用加号代替版本号。这取决于你对此的开放程度......所以

compile 'de.keyboardsurfer.android.widget:crouton:1.+'
compile 'com.squareup.picasso:picasso:2.+'

将为您提供1.或2.版本控制周期下的最新版本...

答案 2 :(得分:0)

  
      
  • 如果需要,您可以使用通配符替换部分版本号(例如,2.3。+)。
  •   
  • 在这种情况下,此将导致Gradle自动更新到库的新补丁级别
  •   
  • 有些开发人员不赞成使用这种方法,因为它很方便会降低您重现构建的能力(例如,您需要重新编译)您的代码的一些较旧的分支,现在您还不知道当时正在使用的工件的版本。)
  •   

我发现Gradle, please是我的答案。

  • 轻松获取最新的android库gradle编译语句。