07、Gradle中构建脚本的project和task

简介

Gradle构建中的两个基本概念是项目( project )和任务(task),每个构建至少包含一个项目,项目中包含一个或多个任务。在多项目构建中,一个项目可以依赖于其他项目。类似的,任务可以形成一个依赖关系图来确保他们的执行顺序

项目和任务的关系

如下图有两个项目,项目1里面有三个任务,任务A依赖任务B和任务C,那么任务C和任务B要先执行完才执行任务A。项目2里的任务执行顺序也是类似的 D -> E -> F。

图片

什么是项目(project)

一个项目代表一个正在构建的组件(比如一个jar文件),当构建启动后,Gradle会基于build.gradle实例化一个org.gradle.api.Project类,并且能够通过project变量使其隐式可用

项目里的属性

group、name、version

  • group 组不能重名,最大的范围
  • name名字和maven里的artifactId一样的
  • version 就是版本号

apply、dependencies、repositories、task

  • apply 调用一个组件
  • dependencies 里面主要是依赖的jar包坐标
  • repositories 主要是用来配置下载jar包写仓库地址
  • task 项目里执行的一些任务

什么是任务(task)

任务对应org.gradle.api.Task。主要包括任务动作和任务依赖。任务动作定义了一个最小的工作单元。可以定义依赖于其他任务、动作序列和执行条件。

任务里的属性

dependsOn

  • dependsOn 用于表示依赖的任务

doFirst、doLast <<

  • doFirst task就是一个动作列表,在动作列表前面加一个动作

  • doLast 在动作列表末尾加一个动作,<< 两个小于号和 doLast 一个意思

  • 一个任务里可以执行多次 doFirst、doLast

下图中的所有操作都是一个个任务。

图片
了解更多:
在这里插入图片描述