我想知道在Android Studios gradle中包含库项目的推荐方法是什么:
第一种方式:
compile 'de.greenrobot:greendao:2.1.0'
第二种方式:
compile files('libs/greendao-2.0.0.jar')
有什么优点和缺点。
答案 0 :(得分:2)
在第一种情况下,gradle完全处理依赖管理过程,即下载jar并将其包含在项目中。
在第二种情况下,您必须手动下载jar并将其包含在libs文件夹中。
更简单和首选的方式是第一种方式。
答案 1 :(得分:1)
相信我,第二种方式可以节省大量的建筑时间。 顺便说一句,时间就是金钱。
答案 2 :(得分:1)
第一种方式,即:
compile 'de.greenrobot:greendao:2.1.0'
compile 'com.library.sample:library:x.x.x'
Gradle将找到这些依赖项,并使它们在您的构建中可用。如果您的依赖项具有依赖项,gradle也会查找它们并将其包含在项目中。因此,您不需要手动添加所有依赖项。
<强> 7.1。什么是依赖管理?
非常粗略地说,依赖管理由两部分组成。首先, Gradle需要了解项目需要构建的内容 或者跑,以便找到它们。我们将这些传入的文件称为 项目的依赖关系。其次,Gradle需要建立和 上传项目生成的内容。我们称之为传出 提交项目的出版物。让我们来看看这两件作品 更详细:
大多数项目并非完全独立。他们需要建立文件 通过其他项目进行编译或测试等。对于 例如,为了在我的项目中使用Hibernate,我需要包含 我编译源代码时,类路径中有一些Hibernate jar。跑步 我的测试,我可能还需要包括一些额外的罐子 测试类路径,例如特定的JDBC驱动程序或Ehcache jar。
这些传入的文件构成了项目的依赖关系。摇篮 允许您告诉它项目的依赖性是什么,所以 它可以负责找到这些依赖关系,并制作它们 在您的构建中可用。可能需要下载依赖项 从远程Maven或Ivy存储库,或位于本地 目录,或者可能需要由同一个中的另一个项目构建 多项目构建。我们将此流程依赖性解析称为。
请注意,此功能提供了优于Ant的主要优势。使用Ant, 您只能指定绝对路径或相对路径 要加载的特定罐子。使用Gradle,您只需声明“名称”即可 您的依赖项和其他层确定从哪里获取这些依赖项 来自的依赖。您可以通过添加从Ant获得类似的行为 Apache Ivy,但Gradle做得更好。
通常,项目的依赖关系本身就有 依赖。例如,Hibernate核心需要其他几个 运行时,类路径上存在的库。所以,当Gradle 为您的项目运行测试,它还需要找到这些 依赖关系并使它们可用。我们称之为传递性 的依赖关系。
Gradle会将下载的库存储到USER_HOME/.gradle
。在Linux中,它会将其存储在/home/user/.gradle/caches/modules-2/
中。在Mac中,它会将其存储在~/.gradle/caches/modules-2/
。
顺便说一句,如果您使用过该库,则可以将Android Studio设置为使用该库的本地缓存。
在第二种方式,您需要手动为项目添加库。您还需要包含库的所有剩余依赖项。这很容易出错。
答案 3 :(得分:1)
第一种方式:编译'de.greenrobot:greendao:2.1.0'
PRO:
CON:
第二种方式:编译文件('libs / greendao-2.0.0.jar')
PRO:
CON:
在大多数情况下,我认为你想要采用第一种方式。