gradle 添加依赖_Gradle从入门到精通系列(二)——Cradle入门

点击关注上方“大前端圈”

设为“置顶或星标”,第一时间送达技术干货。

a4a82014d60c0f7909c12a3a232dac3e.png

我们在上一篇文章Gradle从入门到精通系列(一)—— 为什么要用Gradle?
中学习了,Gradle是什么,Gradle的特性,已经为什么要学习Gradle,本节内容我们继续来学习。

主要包括以下内容:

  1. Gradle安装

  2. Gradle中的基本概念

  3. 使用Gradle写一个Hello world

  4. Gradle的任务

  5. 常用的Gradle命令

一,Gradle安装:

安装Gradle前要确保系统已经配置好JDK的环境。Gradle 自带了 Groovy 库,所以不需要安装 Groovy。要求JDK的版本在1.7或更高。

Gradle的安装有两种形式:

  1. 通过包管理安装,比如Window平台的Chocolatey、Scoop,Mac平台的MacPortsl、Homebrew等等。

  2. 手动安装。

关于包管理器安装可以查看官方文档 ,这里主要介绍手动安装,在https://gradle.org/releases/中下载你想要Gradle版本的binary-only。

我这边使用的是Mac,我主要介绍下Mac平台安装方法
步骤如下:

  • 1. 打开终端运行open -e .bash_profile,打开.bash_profile文件来配置环境变量。

  • 2. 在.bash_profile文件中将gradle路径添加到path环境变量中,比如我的就是:

   export PAHT=${PAHT}:/Users/wk/Downloads/gradle/bin
  • 3. 保存.bash_profile文件,在终端中运行source ~/.bash_profile,更新.bash_profile文件。

  • 4. 在终端上运行gradle -v命令,查看是否配置成功。

49084c49b7a2e83cefc5d21f356a8c42.png
gradle.jpg

出现上图则表示已经安装成功。

如果你用的是其他的平台,请移步此官方文档寻找安装方法:https://gradle.org/install/

二,gradle基本概念

gradle中有三个非常重要的概念是项目,任务和动作。

项目(project)任务(task)动作(action)

  • 每一次构建都包括至少一个项目,每一个项目又包含一个或者多个任务。一个任务对象包含一系列动作对象,这些动作对象之后会按照顺序执行。

  • 任务(task):task代表一个独立的原子性操作。如编译,打包,生成 javadoc,发布到某个仓库等操作。

  • 每一个build.gradle脚本文件代表着一个项目,任务定义在构建脚本里。

  • 每一个基于gradle构建的项目,都应该至少有一个build.gradle

当初始化构建过程时,Gradle会基于build文件组装项目和任务对象。一个任务对象包含一系列动作对象,这些动作对象之后会按照顺序执行。一个单独的动作对象就是一个待执行的代码块,它和Java中的方法很相似。

三,使用Gradle写一个Hello world

你可以通过在命令行运行 gradle 命令来执行构建,gradle 命令会从当前目录下寻找 build.gradle 文件来执行构建。我们称 build.gradle 文件为构建脚本。严格来说这其实是一个构建配置脚本,这个构建脚本定义了一个 project 和一些默认的 task。

比如,我新建文件夹gradletest,在gradletest文件夹中新建文件build.gradle,文件内容如下:

task hello {
    doLast {
        println 'hello world!'
    }
}

然后在该文件所在目录下运行gradle -q hello构建脚本, 就会打印出“Hello world!”。

-q 参数的作用是什么?
该参数用来控制 gradle 的日志级别,可以保证只输出我们需要的内容。

上面的例子还可以写的更简洁一些,操作符<< 是doLast方法的快捷版本,它们做了相同的事情,如下所示。

task hello <    println 'Hello world!'
}

上面的脚本定义了一个叫做 hello 的 task,并且给它添加了一个动作doLast,doLast 代表task执行的最后一个action,通俗来讲就是task执行完毕后会回调doLast中的代码。当执行 gradle hello 的时候, Gralde 便会去调用 hello 这个任务来执行给定操作。这些action操作其实就是一个用 groovy 书写的闭包。

四,Gradle的任务

4.1创建任务的三种方式

1,采用闭包的方式来定义了一个叫做 hello 的任务

task hello <    println 'Hello world!'
}

2,直接用任务名称创建

def Task hello=task(hello)
hello.doLast{
     println "hello world"
}

3,任务名称+任务配置创建

def Task hello=task(hello,group:BasePlugin.BUILD_GROUP)
hello.doLast{
     println "hello world"
}

其中group为任务配置项,它代表了分组。

最常用的是第一种方式来创建任务。

4.2 任务的依赖
在两个任务之间指明依赖关系,任务依赖会决定任务运行的先后顺序,被依赖的任务会在定义依赖的任务之前执行。创建任务间的依赖关系如下所示。

task hello <    println 'Hello world!'
}
task go(dependsOn: hello) <    println "I'm Gradle"
}

在hello任务的基础上增加了一个名为go的任务,通过dependsOn来指定依赖的任务为hello,因此go任务运行在hello之后。
运行gradle -q go构建脚本,打印结果如下:

Output of gradle -q intro
\> gradle -q intro
Hello world!
I'm Gradle

添加依赖 task 也可以不必首先声明被依赖的 task。

4.3动态定义任务

动态定义任务指的是在运行时来定义任务的名称,如下所示。

4.times { counter ->
    task "task$counter" <        println "I'm task number $counter"
    }
}

这里用到了Groovy语法,关于Groovy语法会在本系列后续的文章进行介绍。times是Groovy在java.lang.Number中拓展的方法,是一个定时器。3.times中循环创建了三个新任务,隐式变量number的值为0,1,2,任务的名称由task加上number的值组成,达到了动态定义任务的目的。
运行gradle -q task1 ,打印结果如下:

Output of gradle -q task1
\> gradle -q task1
I'm task number 1

4.4定义默认任务

Gradle 允许在脚本中定义多个默认任务。
在build.gradle文件中

defaultTasks 'clean', 'run'
task clean <    println 'Default Cleaning!'
}
task run <    println 'Default Running!'
}
task other <    println "I'm not a default task!"
}

运行gradle -q ,打印结果如下:

Output of gradle -q
\> gradle -q
Default Cleaning!
Default Running!
五,常用的Gradle命令

下面介绍一些Gradle中常用的命令操作

  • 查看版本号: gradle -v

  • 编译执行某个task: gradle Task名

  • 静默编译执行某个task: gradle -q Task名(q表示quiet模式,表示编译执行Gradle脚本的过程中,只输出必要的信息. 除了quiet模式外,Gradle中还有其他三种模式)
    例如:

 gradle -b project1.gradle hello
  • 编译执行某个Project中的某个task:gradle -b Project名 Task名(Gradle默认只执行build.gradle文件中,自定义其他文件xxx.gradle编译运行显式指定Project名称,这里的build.gradle其实表示的就是build Project)

  • 显示所有的Project:gradle projects

  • 显示所有的task:gradle tasks

  • 显示gradle的gui:gradle --gui 或 gradle --gui&(后台运行)

  • 查找所有的gradle命令: gradle --help

最后一定要注意:

gradle脚本文件的后缀必须是.gradle

a0f71d2645b1229d544128ccb5fde288.png

总结一下

本文介绍了如何安装Gradle,Gradle中的一些基本概念,如何使用Gradle写一个Hello world,Gradle任务的介绍以及常用的Gradle命令,这些知识熟练掌握之后,恭喜,你已经入门了。

58992c0a4c6d7d7139f8ca7078da52ba.png

大前端圈.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值