Gradle 之初相识
Posted 黑马大前端
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle 之初相识相关的知识,希望对你有一定的参考价值。
认识 Gradle
Gradle 是基于 Groovy 的一种 DSL, 又因为 Groovy 是对 Java 的扩展,所以可以理解为 Gradle 是一种基于 Java 环境的构建工具。
官方文档
安装
本文只讨论 macOS 的安装。
java 环境
因为是基于 Java 环境的,所以首先要保证已安装 JDK。
$ java -version
如果可以正确输入 java 版本号说明已安装。
安装 gradle
可以通过 Homebrew 来安装,命令如下:
$ brew install gradle
安装完成之后查看版本好来确认安装成功
$ gradle -v
Demo 示例
创建一个工程目录
$ mkdir gradle-demo && cd gradle-demo
初始化
Gradle 提供了初始化项目的命令。如下:
$ gradle init > Starting a Gradle Daemon (subsequent builds will be faster) > BUILD SUCCESSFUL in 5s > 2 actionable tasks: 2 executed
初始化完成之后,会发现在项目目录中多了几个目录和文件,下面对他们进行简要的说明:
文件目录说明
├── build.gradle // 项目配置脚本,用来配置当前项目的各种任务。我们大部分 Gradle 的配置都会在这里进行配置。 ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew // Linux 和类 Unix 系统的执行文件。 ├── gradlew.bat // Windows 系统的执行文件 └── settings.gradle // 用来配置哪些项目参与工程的构建,一般多项目构建的时候会用到。
好,基本的工程文件我们已经配置好了,那么我们开始配置一个任务。
Hello World
在 build.gradle 文件中做如下配置。
task hello { println "Hello world" }
然后在项目根目录下执行:
$ ./gradlew hello
可以看到输出了 hello world
, 下面我们对上面的配置进行简要的说明:
大家看到这段代码的时候,可能会这样去理解:task
是一个关键字,然后后面给了一个任务的名字,最后是实现。
其实不是这样子的,因为 Gradle 的核心是基于 Groovy 的,所以这里要稍微讲一下 Groovy 的语法。 这里的 task 其实是一个函数,前面讲到 Gradle 是一种 DSL,它不是计算型的编程语言,可以理解成它是对 Groovy 脚本语言的调用,这里的 task 就是调用了一个内部函数。那么既然是调用函数,得有参数吧。是的,后面的名字和函数体都是实现。这里可能和我们通常看到的函数调用不太一样,通常我们大多数语言的函数调用,参数传递的语法都是要有括号的。但是在 Groovy 的语法里面,函数调用的参数传递是可以省略括号的。所以上面的代码和下面的是一致的:
task(hello, { println("Hello world"); })
同时,Groovy 还有一个语法是:如果函数的最后一个参数是一个闭包,那么这个闭包可以写在括号的外面。所以上面的代码又可以写成:
task (hello) { println("Hello world"); }
Copy 任务
构建工具不是为了输出 Hello world 的,是为了把一个个简单的 task 关联成一个大的构建任务。下面来写一个 Copy 的 task.
首先先在工程里面创建一个 src 的文件夹,并创建一个 test.txt, 随便写一点儿内容。
然后将 build.gradle 脚本修改成如下:
task copy(type: Copy) { from "src" into "dest" }
然后执行命令:
./gradlew copy
会发现在工程目录多了一个 dest 文件夹,里面有一个相同的文件 test.txt
以上是关于Gradle 之初相识的主要内容,如果未能解决你的问题,请参考以下文章