您的位置:首页 > 其它

文章标题

2016-07-24 13:36 387 查看

Gradle构建入门

什么是gradle

gradle是一个基于JVM的构建工具,gradle脚本中的任务采用groovy语言编写(这就好像makefile中的目标用bash编写)。gradle自带AntBuilder。

gradle通过一些配置文件和脚本来完成代码的依赖、第三方库的引入、编译的自动化配置等功能。

makefile的核心思想的构建思想是通过一个个“目标”、“依赖”、“命令”来完成整个项目的关联和编译。gradle与之类似。

gradle是怎么识别源文件的

gradle采用“约定优于配置的”思想,通过“Plugin”来约定项目的目标和源文件的布局。例如Java Plugin定义的源文件布局如下:



android 提供的android Plugin同样也定义了自己的源文件布局。在gradle项目中,需要在每个代码模块的build.gradle中定义使用哪一种Plugin。

//普通的Java项目

apply plugin: ‘java’

//Android Application

apply plugin: ‘com.android.application’

//Android Library apply plugin:

‘com.android.library’

gradle是如何识别编译目标的

makefile中的 “目标” 对应 gradle中的任务-“task”。gradle的构建过程就是执行一条条“task”的过程。一个“task”可以依赖 另一个 “task”, 因此通过“task”间的依赖,把整个项目的“task”链接在一起。

mafile中的“目标”是在makefile中定义的,gradle的“task”却是在Pulgin中定义。每一种工程类型(java项目、android项目),其构建过程都是差不多的,因此可以为每一种类型的项目定义一个通用的“Pulgin”,以后同类型的项目都可以直接用同一个Pulgin构建。

同类型的工程在不同的项目中、配置可能不一样。gradle 的 Pulgin 也可以定义或导出一些特定的“元素”。这些元素用来传递用户定义的配置信息。例如: Google提供的 “com.android.application” Plugin 就定义了一个”android”元素,开发者可以在build.gradle中配置该元素的细节。 例如

android {

compileSdkVersion 21
buildToolsVersion "21.1.1"

defaultConfig {
applicationId "com.jhuster.test"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0.0"
}


}

gradle命令怎么用

gradle 和 make 的命令类似,都是执行编译或者清理任务的。

make 默认查找当前目录的makefile,例如:

make all

make clean

gradle的类似用法,例如

gradle build //编译和打包整个项目

gradle clean //清除之前的构建

gradle test //执行测试

gradle compileJava //编译Java

gradle如何引入第三方库的?

make 引用第三方库,需要把库下载下来,放在工程目录下。 编译时引用其头文件,编译链接参数中引用.a文件或者.so文件。

gradle 通过build.gradle 中的 dependencies 来配置。例如:

dependencies {

compile files(‘libs/foo.jar’) //以jar的方式引用

compile project(‘:foo’) //以library工程源码的方式引用

}

另外 gradle 还支持 类似ubuntu软件源仓库的方式来引用第三方库。开发者将自己开发的第三方库上传到支持gradle的软件仓库中,其他人通过配置build.gradle完成对该库的引用,在代码构建的时候,gradle会完成第三方库的下载和链接。比较常用的两个个中心仓库: jcenter,mavenCentral。例如:

allprojects {

repositories {

jcenter()

}

}

dependencies {

compile ‘com.squareup.okhttp:okhttp:2.4.0’

}

小结

gradle类似makefile,gradle任务中用的groovy就像 makefile中目标的bash。 gradle有一层自己的语法,groovy也有自己的语法。

参考:

http://ticktick.blog.51cto.com/823160/1688586

http://wiki.jikexueyuan.com/project/gradle/build-script-basics.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: