共计 1860 个字符,预计需要花费 5 分钟才能阅读完成。
前言
本文的示例是在 Windows
环境下基于 Groovy
的Gradle
构建。
初始化项目
- 创建项目目录,目录名为
basic-demo
-
在项目的命令行(例如我的当前目录就是
G:\basic-demo
)里面执行gradle init
指令,遇到选项直接按回车键使用默认配置即可(这样默认创建的是基于Groovy
脚本的项目)。执行成功输出关键内容如下:Get more help with your project: https://guides.gradle.org/creating-new-gradle-builds BUILD SUCCESSFUL in 1m 28s 2 actionable tasks: 2 executed
项目结构
Gradle
项目初始化成功后会生成一系列文件,内容如下所示(下面展示的是基于 Groovy
脚本的项目,基于 Kotlin
的项目,部分文件的文件名后缀为kts
)
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
-
build.gradle
用于配置当前项目的 Gradle 构建脚本 -
gradle-wrapper.jar
为Gradle Wrapper
可执行 JAR -
gradle-wrapper.properties
为Gradle Wrapper
的配置 -
gradlew
为基于Unix
的系统的Gradle Wrapper
脚本 -
gradlew.bat
为适用于Windows
的Gradle Wrapper
脚本 -
settings.gradle
用于配置Gradle
构建时的配置信息
创建任务
Gradle
提供了通过 Groovy
或者 Kotlin
创建和配置任务的 API
,这些API
也被称为任务库。
- 在项目的根目录创建一个
src
目录 - 在
src
目录创建一个myfile.txt
文件,并在里面添加一行内容Hello, World!
-
在
build.gradle
文件新增一个名字为copy
的任务,这个任务会将src
目录的文件复制到dest
目录(dest
目录不存在时,任务会自动创建),关键代码如下task copy(type: Copy, group: "Custom", description: "Copies sources to the dest directory") { from "src" into "dest" }
-
task copy
中的copy
表示任务名称,为调用任务时的关键参数。 -
type
为任务类型,Gradle
提供了一系列封装好的任务API
,这类选择使用的是任务库中Copy
这个API
,它可以将文件从一个位置复制到另一个位置。 -
group
为任务组,description
为任务简介,目前暂时不需要用上,后面会介绍。 -
from
和into
是Copy API
的两个参数,from
表示数据源,into
表示复制的目的地
-
-
调用
copy
任务,在控制台输入gradlew copy
即可,执行结果如下:BUILD SUCCESSFUL in 1s 1 actionable task: 1 executed
- 如果需要调用其他任务只需要按照
gradlew <task>
格式即可调用对应的任务
使用插件
Gradle
提供了一系列实用的插件,我们可以在 Gradle 插件市场中检索需要的插件。
下面将会通过使用 base
插件来进行演示
-
在
build.gradle
新增插件配置(需要注意插件配置内容要在文件最顶部)plugins {id "base"}
-
添加一个将
src
目录中的文件打包成一个zip
包的任务task zip(type: Zip, group: "Archive", description: "Archives sources in a zip file") { from "src" setArchiveName "basic-demo-1.0.zip" }
-
task copy
中的zip
表示任务名称,为调用任务时的关键参数。 -
type
为任务类型,Zip
是base
插件提供的API
。 -
group
为任务组,description
为任务简介,目前暂时不需要用上,后面会介绍。 -
from
和setArchiveName
是Zip API
的两个参数,from
表示数据源,setArchiveName
表示打包后的压缩包名称
-
-
任务执行输出内容如下:
BUILD SUCCESSFUL in 1s 1 actionable task: 1 up-to-date
然后就可以在根目录下的
build\distributions
目录下看到对应的压缩包了
正文完