Gradle学习笔记--构建脚本(四)

时间:2022-12-26 18:24:31

构建块

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

 

项目(project)

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

  2.group、name、version

  3.apply、dependencies、repositories、task

  4.属性的其他配置方式:ext、gradle.properties

 

任务(task)

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

  2.dependsOn(声明任务依赖)

  3.doFirst在动作前面、doLast(<<)在动作后面 

  4.自定义任务,如下:

def createDir = {
    path ->
        File dir = new File(path);
        if(!dir.exists()){
            dir.mkdirs();
        }
}

task makeJavaDir(){
    def paths = ['src/main/java','src/main/resources','src/test/java','src/test/resources'];
    doFirst {
        paths.forEach(createDir);
    }
}

task makeWebDir(){
    dependsOn 'makeJavaDir'
    def paths = ['src/main/webapp','src/test/webapp'];
    doLast {
        paths.forEach(createDir);
    }
}

 

构建声明周期

  1.初始化

  2.配置

  3.执行

 

依赖管理

  1.概述:几乎所有的基于JVM的软件项目都需要依赖外部类库来重用现有的功能.自动化的依赖管理可以明确依赖的版本,可以解决因传递性依赖带来的版本冲突

  2.工件坐标:group、name、version

  3.常用仓库:mavenLocal/mavenCentral/jcenter,自定义仓库,文件仓库

  4.依赖的传递性:B依赖A,如果C依赖B,那么C依赖A

  5.自动化依赖管理

  Gradle学习笔记--构建脚本(四)

  6.依赖阶段配置:compile(编译时),runtime(运行时)

  7.依赖阶段关系

  Gradle学习笔记--构建脚本(四)