Android Studio中的Gradle相关小知识点

原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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值