在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')
}
答案 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是我的答案。