创建新的Gradle构建

46次阅读

共计 1860 个字符,预计需要花费 5 分钟才能阅读完成。

前言

本文的示例是在 Windows 环境下基于 GroovyGradle构建。

初始化项目

  1. 创建项目目录,目录名为basic-demo
  2. 在项目的命令行(例如我的当前目录就是 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  
  1. build.gradle用于配置当前项目的 Gradle 构建脚本
  2. gradle-wrapper.jarGradle Wrapper 可执行 JAR
  3. gradle-wrapper.propertiesGradle Wrapper 的配置
  4. gradlew为基于 Unix 的系统的 Gradle Wrapper 脚本
  5. gradlew.bat为适用于 WindowsGradle Wrapper脚本
  6. settings.gradle用于配置 Gradle 构建时的配置信息

创建任务

Gradle提供了通过 Groovy 或者 Kotlin 创建和配置任务的 API,这些API 也被称为任务库。

  1. 在项目的根目录创建一个 src 目录
  2. src 目录创建一个 myfile.txt 文件,并在里面添加一行内容Hello, World!
  3. 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为任务简介,目前暂时不需要用上,后面会介绍。
    • fromintoCopy API的两个参数,from表示数据源,into表示复制的目的地
  4. 调用 copy 任务,在控制台输入 gradlew copy 即可,执行结果如下:

    BUILD SUCCESSFUL in 1s
    1 actionable task: 1 executed
  5. 如果需要调用其他任务只需要按照 gradlew <task> 格式即可调用对应的任务

使用插件

Gradle提供了一系列实用的插件,我们可以在 Gradle 插件市场中检索需要的插件。

下面将会通过使用 base 插件来进行演示

  1. build.gradle 新增插件配置(需要注意插件配置内容要在文件最顶部)

    plugins {id "base"}
  2. 添加一个将 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为任务类型,Zipbase 插件提供的API
    • group为任务组,description为任务简介,目前暂时不需要用上,后面会介绍。
    • fromsetArchiveNameZip API的两个参数,from表示数据源,setArchiveName表示打包后的压缩包名称
  3. 任务执行输出内容如下:

    BUILD SUCCESSFUL in 1s
    1 actionable task: 1 up-to-date

    然后就可以在根目录下的 build\distributions 目录下看到对应的压缩包了

正文完
 0