Android编译依赖项-Gradle构建

CBA110

我的问题很简单,我不确定该如何解决。

在gradle中编译库时,我使用以下代码:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:cardview-v7:21.0.+'
    compile 'com.android.support:recyclerview-v7:21.0.+'
    compile 'com.android.support:design:22.2.+'
    compile 'com.android.support:appcompat-v7:22.2.+'
}

这给了我我想要的东西,而且我没有任何问题。我猜上面的代码可以确保在构建应用程序时编译每个依赖项的最新版本(因此,每个语句的末尾都有“ +”号)。但是,我在网上的很多地方都看到如下所示的相同代码行,但没有“ +”号:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:cardview-v7:21.0.0'
    compile 'com.android.support:recyclerview-v7:21.0.0'
    compile 'com.android.support:design:22.2.0'
    compile 'com.android.support:appcompat-v7:22.2.0'
}

没有明显的区别,并且两者都可以正常工作。但是作为一个打算长期支持该应用程序的开发人员,我应该使用哪个?有或没有附加的“ +”号。相互使用可能带来的好处或问题是什么?任何反馈将不胜感激。

加布里埃尔·马里奥蒂(Gabriele Mariotti)

使用+,Android Studio可以更新您在项目中使用的依赖项。

这可能是一个问题,因为您将无法知道该应用程序的特定版本中包含了哪个版本。

具有可复制的构建结果非常重要。

使用以下方式也有一些区别:

compile 'com.android.support:appcompat-v7:22.2.+'
compile 'com.android.support:appcompat-v7:22.+'
compile 'com.android.support:appcompat-v7:+'

在第一种情况下,您将仅更新较小的更改(在大多数情况下为错误修复)。在第二种情况下,您将更新主要磁盘。例如,从22.0.0和22.2.0进行了很多更改。最后的情况是最危险的。在任何情况下都不要使用它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章