在build.gradle中使用依赖项的优选方法:编译或编译文件?

时间:2016-01-15 12:49:54

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

我正在为我的项目使用许多外部库,因为它通过减少工作节省了大量的工作。我更喜欢gradle构建机制。 Gradle提供了以下添加依赖项的方法:

  1. 将它用作外部库(我更喜欢库不可用时)

    compile 'com.squareup.picasso:picasso:2.5.2'
    
  2. 添加可用jar

    compile files('libs/picasso-2.5.2.jar')
    
  3. 在项目中使用库的最佳做法是什么?以上述方式使用依赖项的优缺点是什么?

2 个答案:

答案 0 :(得分:3)

<强>考虑:

  • 使用任何这些解决方案对应用程序性能没有任何影响
  • 复制和粘贴Gradle行比复制和粘贴文件更快
  • 发布新版本的库时,更容易更新Gradle行。只需更改几位数即可。您甚至可以将其设置为自动更新
  • 当涉及到Android库时,会在有可用更新时通知您
  • 有时您可能无法访问互联网,并且在这些情况下,硬盘上准备好的.jar文件是胜利的

我自己,我尽可能地使用Gradle。它只是让我的开发过程更快更容易。

更新为了让我的答案更加完整:

  • RémiPradal在his answer中也有非常有趣的见解:
  

使用编译文件[...]将增加您的存储库大小,因为您可能会提交.jar文件。

答案 1 :(得分:1)

应用程序性能与您用于依赖关系管理的方法无关。依赖管理是为了让开发人员的生活更轻松。

考虑到这一点,特定库的新版本发布时几乎没有其他功能,您希望迁移到更新版本。如果您使用的是第二种方法,则必须删除现有的jar文件并下载新版本的jar文件并将其包含在您的代码库中。但是,如果您使用的是第一种方法,那只需要更改版本。

总之,如果Maven(或任何全局存储库)中可用的库或jar,请使用第一种方法。如果jar只能直接下载,我们没有其他选择,请选择第二种方法。

此外,对于第二个选项,您可以在一行中将所有jar文件添加到项目中,如下所示:

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