构建脚本
group、name、version
apply应用一个插件
dependencies 声明依赖
repositories 仓库
task 声明任务
属性的其他配置方式:ext、gradle.properties
构建图例子
up-to-date:最新的,上次构建之后,任务的输入输出并没有改变,所以跳过,并没有执行。源代码改变会执行
任务:动作列表,一个任务中可以多次执行doFirst、doLast
dependsOn:声明任务依赖
doFirstL:任务列表前添加一个动作
doLast:任务列表后添加一个动作
任务(task)
apply:应用一个插件(一个方法)
dependencies:用来声明这个项目依赖与哪些jar包,或者其他的项目
repositories:仓库,去哪个仓库中找依赖的jar包
task:声明项目中有什么任务(一个方法)
group、name、version三个属性是一个组件的坐标(唯一确定一个组件)
group:组
name:名称,组内不能存在重名的
version:版本号
先按照组划分,再按照名称确定,通过版本号确定构建历史
artifactid等同于name
项目:基于build.gradle构建
构建脚本
项目-任务关系
项目-任务关系
构建块介绍
1.基本概念:项目,任务,至少一个项目,多项目有 依赖关系
2.项目:正在构建的组件。Gradle基于build.gradle实例化org.gradle.api.Project类,通过project变量隐式可用。
3.坐标:groupId,name,version 常用:apply,dependencies,repositories,task
4.task:包括任务动作,任务依赖,任务动作最小的工作单元。 dependsOn,doFirst,doLast
5.一般不需要自定义task
一、概述
构建脚本的要素:项目project和任务task
一个build.gradle至少包含一个项目,一个项目里有若干个任务
多项目互相可以依赖,项目内的任务也可以互相依赖,所以有一个确定的执行顺序
二、项目
概念:Gradle根据build.gradle实例化一个Project类,这个实例就是所谓的项目
三个重要的变量(用来唯一标识):group、name(跟artifactId好像是一个意思)、version
重要方法:apply、dependencies(所依赖的jar包)、repositories(要找的jar包所在的仓库)、task
属性的其他配置方式:project的ext属性、gradle.properties文件中定义
三、任务task
概念:对应org.gradle.api.Task类,主要要素:任务动作(最小工作单元)、任务依赖(所依赖的东西)
方法1:dependsOn,用来声明任务依赖
方法2:doFirst以及doLast,task是动作列表,俩方法表示在动作列表的最前/后添加动作,可多次添加
其他说明:gradle及插件(apply加载的那个插件)定义了很多默认的任务,一般情况下都是够用的,不够用就需要自定义任务
tips:之前讲过,构建是可重复的,如果多次构建中,某些任务的输入输出等等没发生过变化,再去执行效果不变,就会跳过执行
Gradle构建的基本概念是项目和任务task,每个构建至少包含一个项目,项目中包含一个或者多个任务
group name version
apply dependences repositories task
ext gradle.properties
任务task 包括任务动作和任务依赖,任务动作定义了一个最小的工作单元
doFirst doLast
1. jar这个任务是依赖
> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
这前三个任务的
UP-TO-DATE表示最新的 在上次构建之后这个任务的输入输出并没有
改变 所以它这个是直接跳过的并没有执行的 如果源代码有改动它才会自动执行
1. settings.gradle 是用来管理多项目构建的
任务 (task)
任务里面有什么重要的方法
1. dependsOn 这个是申明依赖的
2. doFirst , doLast << 这两个小于号也是跟doLast是一样的是
一个简写方式 task也是动作列表 doFirst就是在任务列表的最前面
添加一个动作 doLast就是在动作列表的末尾添加一个动作 一个任务里面可以执行多次doFirst doLast 也就是动作列表可以包含多个动作
任务 (task)
任务对应的是Task这个类 主要包括任务动作和任务依赖 任务的动作就定义了最小的工作单元就是最小的代码块 可以定义任务依赖于其它的任务 或者是执行顺序和执行条件
它有几个比较重要的方法apply apply就是应用一个插件 它是project 里面的一个方法
dependencies 它是用来声明这个项目依赖于那些jar包 或者是其它的项目
repositories 它是一个仓库 也就是说从哪个仓库里面找依赖的jar包
在仓库里面根据group, name , version 唯一确定一个组件 所以我 们就可以唯一确定的依赖一个组件了
4. task也是project里面的一个方法 它是用来申明这个项目里面有什么 任务的
项目 (project )
1. 项目最重要的属性和方法
属性就是 group, name, version 这三个属性就是一个组件的坐标
就是通过这三个属性可以唯一确定一个组件也就是说一个jar包这个
在后面仓库中尤其重要 如果group, name ,version不能确定唯一组件
的话 那你的依赖就是不明确的那这就是有问题的 group就是组 组是最大
的 接下来就是名称 这个组里面不能有重名的 然后就是版本号
2. 这个name跟maven里面的artifactIds是一样的 用来确定组件的名称的
3. 在IDEA新建项目的时候有的是name有的是artifactids说的都是name
构建脚本
项目 (project)
构建脚本概要
任务不一定是我们自己定义的,我们可以自己定义任务,但是我们使用了插件以后,这些插件默认是带了很多任务的
任务里面的一些重要方法
dependsOn:声明任务依赖的
doFirst、doLast<<:Task也是一个动作列表,doFirst就是在动作列表的最前面添加一个动作,doLast就是在动作列表的末尾添加一个动作。一个任务里面可以执行多次doFirst和doLast,也就说动作列表里面可以包含多个动作。
任务(task)
任务对应org.gradle.api.Task。主要包括任务动作和任务依赖。任务动作定义了一个最小的工作单元。可以定义依赖于其他任务、动作序列和执行条件
apply方法:指应用一个插件
dependenies方法:用来声明这个项目依赖于哪些jar包或者其他的项目
repositories方法:就是说它去哪个仓库里面去找依赖的jar包
task方法:用来声明这个项目里面有什么任务的
项目最主要的几个属性和方法
group、name、version这三个属性就是组件的坐标,就是说通过这三个属性可以唯一确定一个组件,也就是说一个jar包
项目概念:
一个项目代表一个正在构建的组件(比如一个jar文件),当构建启动后,Gradle会基于build.gradle实例化一个org.gradle.api.Project类,并且通过project变量使其隐式可用。
也就是说,build.gradle里面你所有的变量和方法的调用都是在project上面,无论你是否用了project还是没使用,都是在project上面