Android Studio中的Gradle相关小知识点

来源:互联网 发布:希路猎人鞋好不好知乎 编辑:程序博客网 时间:2024/05/17 07:17

原gradle的知识点

gradle中的依赖管理

依赖管理

大概来说,依赖管理由两方面构成。一方面,Gradle需要知道在构建项目时所需要构建或者运行的东西以便Gradle找到它们,我们将这些被导入的文件称作项目的依赖。另一方面,Gradle需要构建或者上传您的项目产出的东西,我们将这些由您的项目产出的文件称作项目的出版物。

1.大部分项目并不是依靠项目本身独立完成的。它们需要加入其他项目构建的文件以便进行编译或测试等等。举个例子,为了在我的项目中使用Hibernate,在编译我的源码时我需要在classpath中引入一些Hibernate的jar文件。为了运行我的测试项目,我可能也需要在测试项目的classpath中引入一些额外的jar文件,例如一个特别的JDBC驱动包或者Ehcache框架包。 对于这些由项目依赖导入的文件,Gradle允许您告诉它您的项目都依赖了那些文件以便Gradle能够负责找到这些依赖文件,然后让这些文件在您的构建项目中可用。这些依赖文件可能需要从远程的Maven或者Ivy仓库下载,或者存在于本地目录中,或者在一些多项目构建中由其他项目构建而来。我们将这个过程称作<依赖解析> 很多情况下,项目的依赖文件也会有它们自己的依赖文件。举个例子,Hibernate核心的运行需要在classpath中声明几个其他库文件。因此,当Gradle构建您的项目时,也需要找到这些被依赖文件所依赖的文件以确保它们可用。我们将这种情况称作<可传递性的依赖>

gradle依赖配置项

在Gradle中,依赖被组织到不同的配置项。每一个配置项中有一组的依赖,这些配置项被称作<依赖配置项>。你可以用这些配置项声明项目的外部依赖,这一点再之后我们就会看到。依赖配置项也可以用来声明项目的产物。
Java插件定义了许多标准的依赖配置项。这些配置项代表了Java插件需要用到的classpath。

compile 在编译项目源代码时会使用到compile配置项中的依赖。
runtime 在运行项目时会用到runtime配置项中的依赖。默认情况下,也会包含编译代码时候的依赖。

AndroidStudio中gradle的知识点

Gradle 项目可以依赖于其它组件。这些组件可以是外部二进制包,或者是其它的 Gradle 项目
给出一个例子

dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])compile 'com.android.support:appcompat-v7:21.0.3'compile project(':library')compile 'com.nineoldandroids:library:2.4.0'}

这里的

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

就是引用libs这个目录下的所有.jar.文件,如果需要指向一个特定的jar文件,写法可以这样

compile files('libs/xx.jar')

远程文件

compile 'com.android.support:appcompat-v7:21.0.3'

这里则是引用21.0.3版本的appcompat-v7。

在 Android Studio中,使用 android support ,需要在 SDK 中下载 Android Support Repository ,且项目中使用的版本不能大于 SDK 中的版本。当你的 SDK 中已经下载指定版本的 Android Support Repository ,即使没有联网,你也是可以在 Android Studio 中依赖对应的文件。如果你的 SDK 没有下载指定版本的 Android Support Repository ,即使你现在连着网,也会出错。(此处不太懂,需要再查看关于support,tool,api版本的内容)

使用 maven 和 ivy 时需要在 build.gradle 中将仓库添加到列表中。

repositories {    jcenter()}}allprojects {repositories {    jcenter()}}

*mavenCentral() :表示依赖从 Central Maven 2 仓库中获取。
*jcenter() :表示依赖从 Bintary’s JCenter Maven 仓库中获取。
*mavenLocal() :表示依赖从本地的Maven仓库中获取。

库项目

compile project(':library')

引用名称为 library 的 module 。需要注意的是,被引用的 module 需要在 {@projectName}/settings.gradle 文件中进行注册。
我们可以观察到,library/build.gradle 中使用的 apply plugin 为 ‘com.android.library’。用以标记这是一个 Android Library Project 。
当然,你也可以依赖一个 Java Project ,apply plugin 为 ‘java’。

知识来源:
http://ask.android-studio.org/?/article/10
http://ask.android-studio.org/?/article/28

0 0
原创粉丝点击