1. Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。Gradle抛弃了基于各种繁琐的XML,使用一种基于Groovy的特定领域语言(DSL)来声明项目设置。类似于Maven,gradle定义了一个对项目生命周期中各个阶段的行为操作
  2. gradle的特点:
    1. 声明式和合约构建:兼容于Maven的目录结构,规定了源代码,静态文件存放的位置
    2. 基于依赖的编程语言:摒弃了繁琐的xml,采用编码灵活构建
    3. 灵活的扩展:丰富的插件库
    4. 多项目构建: 和maven一样支持多项目构建
  3. gradle需要运行在一个Java环境里,因此安装gradle之前需要配置Java的运行环境,比如:环境变量等
  4. 当安装完毕时,我们可以在命令窗口运行gradle -v来查看版本信息等Gradle学习之基础篇
  5. 运行 gralde init 初始化gradle工程,或者 gradle init --type pom (将maven项目转成gradle项目)
  6. gradle下载地址

 

二。Gradle的几个核心概念

  1. gradle最核心的接口是Project,在一个Project里我们可以通过编程访问所有的Gradle功能。
  2. 生命周期:一个Project和build.gradle 文件之间有一对一的关系。在构建初始化期间,Gradle Project为每个要参与构建的项目组装一个对象
  3. 任务:一个项目本质上是一个Task对象的集合。每个任务都执行一些基本的工作,比如编译类,运行单元测试,或者压缩WAR文件。
  4. 依赖:一个项目通常需要一些依赖来完成工作。而且,一个项目通常会产生一些其他项目可以使用的工件。这些依赖关系被分组在配置中,并且可以从存储库中检索和上传。
  5. 多项目构建:项目被安排到项目层次结构中。一个项目有一个名称和一个在层次结构中唯一标识它的全限定路径。
  6. 插件:插件可以用来模块化和重用项目配置
  7. 属性:Gradle根据Project实例执行项目的构建文件来配置项目。你的脚本使用的任何属性或方法都被委托给关联的Project对象
  8. 额外的属性:所有额外的属性必须通过“ext”命名空间来定义。一旦定义了一个额外的属性,它就可以直接在拥有的对象上(在下面的例子中是项目,任务和子项目)直接可用,并且可以被读取和更新。只有最初的声明需要通过命名空间完成。

三。Gradle中的任务

  1. 每一个构建由一个或多个projects构成,一个project代表着我们想让gradle做的事情,每一个Project是由一个或多个task组成
  2. 创建task的语法结构:task 任务名 << {}
  3. 运行gradle任务语法: gradle -q 任务名
  4. 任务依赖:task 任务名(dependsOn:任务名) << {}
  5.  定义任务自定义属性: task 任务名 << { ext.属性名=值}
  6. 默认任务:defaultTaks '任务名1','任务名2' .....
  7. 短标记法:在字符串中我们可以通过 $任务名 来获取task对象

  build.gradle 代码示例

task basic << {
    ext.name = "basic Task"
    println("这是第一个任务")
}
//依赖任务
task taskDependsOn(dependsOn: basic) << {
    println("task1依赖basic任务")
    println(basic.name)
}
//动态创建4个任务
4.times { i ->
    task "task$i" << {
        println "task1"
    }

}
//短标记法
task shortTask <<{
    println "basic任务的name属性值:$basic.name"
}
// 默认任务
defaultTasks 'shortTask','task1'
View Code

相关文章: