欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Gradle——创建简单的项目

程序员文章站 2022-03-26 12:09:09
项目 & 任务 Gradle 的一切都是基于项目和任务的。 构建由一个或多个项目组成。项目的概念很抽象,它取决于你要用Gradle 做什么 。项目可以是 一个 Jar 库或者一个 web 程序。也可以是一个 zip 压缩包,也可以是将项目部署到生产环境等等; 一个项目是由一个或多个任务组成的;任务是 ......

项目 & 任务

gradle 的一切都是基于项目和任务的。

构建由一个或多个项目组成。项目的概念很抽象,它取决于你要用gradle 做什么 。项目可以是 一个 jar 库或者一个 web 程序。也可以是一个 zip 压缩包,也可以是将项目部署到生产环境等等;

一个项目是由一个或多个任务组成的;任务是构建工作的原子单位,最小的工作单元。例如:编译字节码,创建 jar 。

hello world

创建一个简单的任务,输出 hello world!.

groovy

task hello{
    dolast {
        println 'hello world.'
    }
}

kotlin

tasks.register("hello"){
    dolast {
        println ("hello world.")
    }
}

输入命令 运行该任务

gradle hello

Gradle——创建简单的项目

创建一个简单的构建

新建一个目录

使用 init 命令创建构建项目

gradle 现在支持两种--kotlin dsl 和 groovy dsl .默认是 基于groovy的,如果要使用 kotlin 可以 使用 --dsl kotlin

gradle init --dsl kotlin

Gradle——创建简单的项目

会生成如下目录

Gradle——创建简单的项目

其中 .gitigonre 是 git 忽略文件;.gradle 是 gradle 的一些信息。

需要我们关注的是下面这些文件

├── cradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── build.gradle.kts
├── gradlew
├── gradlew.bat
└── settings.gradle.kts

  • warpper 是 gradle wrapper 使用的目录
  • gradle-wrapper.jar 是执行 gradle wrapper 使用的
  • gradle-wrapper.properties 是 配置 gradle wrapper 属性的
  • build.gradle.kts 用于配置当前项目的gradle构建脚本
  • gradlew 是 unix 机器上的 执行脚本
  • gradlew.bat 是 window 上的执行脚本
  • settings.gradle.kts 是 用于配置gradle构建的gradle设置脚本

创建任务

gradle提供了通过groovy或基于kotlin的dsl创建和配置任务的api。项目包含一组任务,每个任务执行一些基本操作。

gradle提供了一个任务库,我们可以在自己的项目中配置这些任务。例如,有一个核心类型的 copy 任务,它可以复制文件。
下面我们就配置这个 任务来使用一下。

创建一个目录 src
在 src 下创建一个文件名称任意,例如 myfile.txt。添加任意内容,例如 hello world!
在 配置脚本(build.gradle.kts) 添加 一个 copy 类型的 copy 任务,从 src 目录复制到 dest 目录

gradle 在执行时会自动创建 dest 目录。

kotlin

 tasks.register<copy>("copy"){
     description = "copies sources to the dest directory"
     group = "custom"
     from("src")
     into("dest")
    
 }

groovy

task copy(type: copy, group: "custom", description: "copies sources to the dest directory") {
    from "src"
    into "dest"
}

description 和 group 都是可选的,可以随便你定义;也是可以省略的;

执行 copy 任务

gradle copy

检查里面的 myfile.txt 是否复制完成。

使用插件

gradle 提供了大量的插件,在 gradle 插件站 可以查到

今天使用 一个 base 插件 结合它的核心类型 zip 任务,实现打包压缩包的任务。

使用 base 插件

kotlin

plugins {
    id("base")
}

... rest of the build file ...

groovy

plugins {
    id "base"
}

... rest of the build file ...

创建一个 zip 任务,扩展自 核心类型 zip

kotlin

tasks.create<zip>("zip") {
    description = "archives sources in a zip file"
    group = "archive"

    from("src")
    setarchivename("basic-demo-1.0.zip")
}

groovy

task zip(type: zip, group: "archive", description: "archives sources in a zip file") {
    from "src"
    setarchivename "basic-demo-1.0.zip"
}

执行 zip

gradle zip

至此,一个简单的构建完成了。

分析构建过程

gradle 提供了一个基于 web的构建视图——构建扫描

在执行时 使用 --scan 选项或者明确使用构建扫描插件都可以免费的在 创建一个扫描视图分析

gradle zip --scan

在同一服务条款后会直接发送到 构建扫描的平台,复制下面的连接打开即可。

Gradle——创建简单的项目

打开之后会有详细的项目构建分析

Gradle——创建简单的项目

end