Gradle初体验

时间 2019/4/20 15:56:18 加载中...

Gradle初体验

我们创建一个简单的 gradle 项目,来了解一下有关 gradle 的基本命令和 gradle是如何管理项目的。

新建项目

新建一个 demo01 文件夹,并在此文件夹下操作后面的命令

首先执行命令 gradle init,结果如下:

  1. Starting a Gradle Daemon (subsequent builds will be faster)
  2. Select type of project to generate:
  3. 1: basic
  4. 2: cpp-application
  5. 3: cpp-library
  6. 4: groovy-application
  7. 5: groovy-library
  8. 6: java-application
  9. 7: java-library
  10. 8: kotlin-application
  11. 9: kotlin-library
  12. 10: scala-library
  13. Enter selection (default: basic) [1..10]

我们选择直接回车,使用默认的 basic,后面一直回车即可。

  1. Select build script DSL:
  2. 1: groovy
  3. 2: kotlin
  4. Enter selection (default: groovy) [1..2]
  5. Project name (default: demo01):
  6. BUILD SUCCESSFUL in 1m 19s
  7. 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 ):

  1. task copy(type:Copy, group:"Custom", description:""){
  2. from "src"
  3. into "dest"
  4. }

然后执行命令
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语言编写,修改如下:

引入插件

  1. plugins {
  2. id "base"
  3. }

编写任务(下面的 type:Zip 就是用到了 base 插件)

  1. task zip(type: Zip, group: "Archive", description: "") {
  2. from "src"
  3. setArchiveName "basic-demo-1.0.zip"
  4. }

文件改写完成后,运行新的任务 zip
命令:./gradlew zip
运行完毕后,会在 build/distributions 目录下看到压缩后的文件。

其他

了解下其他命令:
gradlew tasks 列举出所有可用的任务
gradlew properties 列举出项目的所有属性

命令总结

命令 意义
gradle init 初始化一个项目
gradle build 生成/构建 项目
gradle copy 运行copy任务
扫码分享
版权说明
作者:SQBER
文章来源:http://www.sqber.com/articles/gradle-first-project.html
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。