2016-12-27 42 views

回答

1

第一种方式:编译 'de.greenrobot:greendao:2.1.0'

PRO:

  • 简单,快速更新

CON:

  • 更新您的gradle文件时需要Internet连接

方式二:编译文件( '库/ greendao-2.0.0.jar')

PRO:

  • 您可以更改图书馆和那些不会被覆盖。
  • 就像钱思坚说的那样,建造起来更快。

CON:

  • 更多的工作来建立,更新

在大多数情况下,我觉得你想要去与第一种方式。

2

在第一种情况下,gradle完全处理依赖管理的过程,即下载jar并将其包含在项目中。

在第二种情况下,您必须手动下载jar并将其包含在libs文件夹中。

更简单和首选的方法是第一种。

+0

太好了!但我想知道添加1行的依赖关系...并不总是添加任何.jar ....仍然有效。 –

1

相信我,第二种方法可以节省大量的建筑时间。顺便说一下,时间就是金钱。

1

在第一种方式,即:

compile 'de.greenrobot:greendao:2.1.0' 
compile 'com.library.sample:library:x.x.x' 

摇篮会发现这些依赖关系,并让他们在你的构建提供。如果你的依赖有一个依赖关系,Gradle也会找到它们并将它包含在项目中。所以你不需要手动添加所有的依赖关系。

Gradle documentation报价:

7.1。什么是依赖管理?

非常粗略地说,依赖管理由两部分组成。首先, Gradle需要知道您的项目需要构建的东西 或运行,以便找到它们。我们称这些传入文件为项目的依赖关系 。其次,Gradle需要构建并上传项目产生的东西。我们将这些传出的 文件称为该项目的出版物。我们来看看这两块 的更多细节:

大多数项目并不是完全独立的。他们需要通过其他项目构建的文件 才能编译或测试等等。对于 的例子,为了在我的项目中使用Hibernate,当我编译我的源代码时,我需要在类路径中包含 一些Hibernate jar。要运行 我的测试,我可能还需要在 测试类路径中包含一些额外的jar,例如特定的JDBC驱动程序或Ehcache jar。

这些传入文件形成项目的依赖关系。 Gradle 可让您告诉它项目的依赖关系,因此 可以帮您找到这些依赖关系,并使其在您的构建中可以使用 。可能需要从远程Maven或Ivy存储库下载 ,或者位于本地目录 中,或者可能需要由同一个 多项目构建中的其他项目构建。我们称之为进程依赖关系解析。

请注意,此功能提供了比Ant更大的优势。使用Ant, 您只能指定要加载的特定罐子的绝对路径或相对路径。通过Gradle,您只需声明 您的依赖关系的“名称”,其他层决定从哪里获得这些依赖关系。您可以通过添加 阿帕奇常春藤获得类似的行为,但Gradle做得更好。

通常,项目的依赖关系本身具有 依赖关系。例如,Hibernate内核需要其他几个 库在它运行时出现在类路径中。所以,当Gradle 为您的项目运行测试时,它还需要找到这些 依赖项并使它们可用。我们称这些传递性的依赖关系为 。

Gradle会将下载的库存储到您的USER_HOME/.gradle。在Linux中,它将存储在/home/user/.gradle/caches/modules-2/中。在Mac中它将存储在~/.gradle/caches/modules-2/。顺便说一下,如果你已经使用了库,你可以设置Android Studio使用库的本地缓存。


在第二种方式中,则需要手动添加库为您的项目。而且还需要包含库的所有其他依赖关系。这很容易出错。