• Gradle学习


    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。 它使用一种基于Groovy的特定领域语言(DSL)来声明项目配置,真正起作用的是Plugin,Gradle默认提供了许多常用的Plugin,如构建Java项目的Plugin、War、Ear等。
    Gradle面向Java应用为主,支持语言:Java、Groovy、Kotlin和Scala。

    1、Gradle本身的领域对象:Project、Task。

    • Project

      1. Project本质上说是具有多个Task的容器;
      2. Project为Task提供了执行上下文,所有的Plugin要么向Project中添加用于配置的Property,要么向Project添加不同的Task。
    • Task

      1. 一个Task表示一个逻辑上较为独立的执行过程,比如编译Java源代码、拷贝文件、打包jar,设置可以是执行一个系统命令或者调用Ant。
      2. 所有的Task都存放在Project的TaskContainer中。
      3. 一个Task可以读取和设置Project的Property以完成特定操作。
      4. Task可以显示声明类型,如Copy
      5. Task之间可以存在依赖关系,使用dependsOn声明
        task taskA(dependsOn: taskB) { //do something }
      6. Gradle默认提供的Task包含:查看Project的Properties(properties)、显示当前定义的所有Task(tasks)、 dependencies、projects

    备注:默认情况下,Gradle将当前目录下的build.gradle作为项目的构建文件。

    2、Task
    2.1 Task创建
    (1)调用Project的task()方法创建Task;
    (2)通过TaskContainer的create()方法创建Task:tasks.create(){}
    (3)声明Task之间的依赖关系:定义时声明或者定义Task后再声明依赖;
    (4)配置Task的Property:定义时配置、闭包方式配置、调用Task的configure()方法完成设置。

    2.2 Task执行
    (1)Gradle是一种声明式的构建工具。执行Task分为两个阶段:配置阶段、实际执行阶段。
    (2)配置阶段:读取所有build.gradle文件的所有内容来配置Project和Task,如设置Property、处理Task之间的依赖关系。

    3、Project
    3.1 Gradle默认下为Project定义的Property:

    • project:Project本身
    • name:Project的名字
    • path:Project的绝对路径
    • description:Project的描述信息
    • buildDir:构建结果存放路径
    • version:版本号

    3.2 自定义Project的Property

    1. 在build.gradle中定义Property:通过ext.XXX定义,可以直接访问
    2. 通过命令后参数设置Property:通过命令行-PXXX传入
    3. 通过JWM系统参数定义Property:通过命令行-Dorg.gradle.project.XXX传入
    4. 通过环境变量设置Property:定义环境变量的时候,每一个Property需要以ORG_GRADLE_PROJECT_XXX定义,如export ORG_GRADLE_PROJECT_XXX=“XXX”。

    4、Plugin相关的概念
    (1)gradle的每一个sourceSet都包含有一个名字、一个名为java(Java源文件集合)的Property、一个名为resources(资源文件集合)的Property。 2(3)Gradle会自动为每一个新创建的source set创建相应的Task:compileJava、processResources和Classes这3个Task。

    5、Gradle依赖管理
    Gradle的依赖仓库配置:repositories,支持Maven、Ivy、本地文件。
    每一组依赖称为一个Configuration。

  • 相关阅读:
    回答提出的问题1-17章
    《构建之法》第13-17章读书笔记
    读《一个程序员的生命周期》有感
    构建之法的第十、十一、十二章读书笔记
    阅读《构建之法》第8,9,10章
    5.2-5.3
    作业5.1测试与封装
    读《构建之法》5.6.7 思考
    读《构建之法》的思考
    作业2 结对思则运算
  • 原文地址:https://www.cnblogs.com/amyzhu/p/8366926.html
Copyright © 2020-2023  润新知