Gradle初体验
Gradle初体验
我们创建一个简单的 gradle 项目,来了解一下有关 gradle 的基本命令和 gradle是如何管理项目的。
新建项目
新建一个 demo01 文件夹,并在此文件夹下操作后面的命令
首先执行命令 gradle init
,结果如下:
Starting a Gradle Daemon (subsequent builds will be faster)
Select type of project to generate:
1: basic
2: cpp-application
3: cpp-library
4: groovy-application
5: groovy-library
6: java-application
7: java-library
8: kotlin-application
9: kotlin-library
10: scala-library
Enter selection (default: basic) [1..10]
我们选择直接回车,使用默认的 basic,后面一直回车即可。
Select build script DSL:
1: groovy
2: kotlin
Enter selection (default: groovy) [1..2]
Project name (default: demo01):
BUILD SUCCESSFUL in 1m 19s
2 actionable tasks: 2 executed
创建完之后,项目的目录结构如下:
├── build.gradle 1️⃣
├── gradle
│── ── └── wrapper
│── ── ── ├── gradle-wrapper.jar 2️⃣
│── ── ── └── gradle-wrapper.properties 3️⃣
├── gradlew 4️⃣
├── gradlew.bat 5️⃣
└── settings.gradle 6️⃣
1️⃣:当前项目的Gradle的构建脚本
2️⃣:gradle wrapper可执行jar包
3️⃣:gradle wrapper的配置文件
4️⃣:unix/liunx 下的 gradle wrapper脚本
5️⃣:winodws 下的 gradle wrapper脚本
6️⃣:gradle的配置文件
任务
gradle中有一个概念叫“任务”,英文名字是 Task。
它相当于我们编程语言 类中的方法,定义了一些操作。
gradle中有一些内置的任务,就好像 Java 中基础类库的方法一样,它也内置了好多任务。
当然,我们自己也可以自定义任务。
基于上面的 demo01 项目,我们做如下实验。
目前demo01目录下,只有如下文件build.gradle gradle gradlew gradlew.bat settings.gradle
新增一个 src 目录,并在 src 目录下新增一个 myfile.txt .
新增任务:复制src目录生成一个副本,名字为dest
修改 gradle.build 文件,并加入如下代码(使用的脚本语言是 groovy ):
task copy(type:Copy, group:"Custom", description:""){
from "src"
into "dest"
}
然后执行命令
windows下:gradlew copy
liunx下:./gradlew copy
执行命令后,首先会提示下载文件,但是……
下载太慢???提示Downloading https://services.gradle.org/distributions/gradle-5.4-bin.zip
这是因为国内访问国外站点,速度太慢导致的。解决办法见这里。
接上面说,命令执行完之后,看下 demo01 目录,会发现多了一个 dest 目录且和 src 目录完全相同。
插件
gradle 中的另一个概念“插件”。gradle也内置了一些插件。其中有一个叫“base”的插件,此插件有一个压缩文件的功能。
继续基于demo01项目做这个实验。
编辑gradle.build文件,使用groovy语言编写,修改如下:
引入插件
plugins {
id "base"
}
编写任务(下面的 type:Zip 就是用到了 base 插件)
task zip(type: Zip, group: "Archive", description: "") {
from "src"
setArchiveName "basic-demo-1.0.zip"
}
文件改写完成后,运行新的任务 zip
命令:./gradlew zip
运行完毕后,会在 build/distributions 目录下看到压缩后的文件。
其他
了解下其他命令:gradlew tasks
列举出所有可用的任务gradlew properties
列举出项目的所有属性
命令总结
命令 | 意义 |
---|---|
gradle init | 初始化一个项目 |
gradle build | 生成/构建 项目 |
gradle copy | 运行copy任务 |
*昵称:
*邮箱:
个人站点:
*想说的话: