Gradle 学习

Gradle提供了什么

  • 对多工程构建支持很出色,尤其是工程依赖问题,并支持局部构建
  • 多种方式的依赖管理:如远程 Maven 仓库、nexus 私服、ivy 仓库或者本地文件系统等
  • 支持传递性依赖管理
  • 轻松迁移项目工程
  • 基于 Groovy 等语言构建脚本,简便灵活
  • 免费开源,并且 整体设计是以作为一种语言为导向的,而非成为一个严格死板的框架

Groovy简介

Groovy 是一种基于 JVM 的敏捷开发语言,结合了 Python、Ruby和 Smalltalk 的许多强大的特性,Groovy 代码能够与 Java 代码很好的结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Grooy 也可以使用其他非 Java 语言编写的库。

从 Java 到 Groovy

自动装箱:

因为 Groovy 具有动态类型特性,所以它从一开始就支持自动装箱。实际上,必要时 Groovy 会自动将基本数据类型视作对象;

字符串:

‘ ‘:单纯的字符串 def name = ‘car’

“ “:可以动态插值 def carName = “$name:AAA”

  • 单引号字符串是 Java.lang.Strring 类型,同时不支持插值
  • 双引号字符串在没有使用插值表达式的情况下是 java.lang.String 类型,但如果有插值表达式使用的话,就是 groovy.lang.String 类型
  • 三引号字符串表示多行的字符串,不必将字符串分割成几块,也不必用连接符或换行符转义字符来将字符串跨行
  • 字符串的使用
    • 单引号单个字符表示 char 类型,需要使用 as 转换
    • ${..} 表达式进行插值,去掉花括号不引起歧义的话,可以去掉
    • 可以通过 += ,-= 操作符添加/减少字符(会自动匹配)

定义变量 - 动态类型

  • Java 是一门静态类型的语言,但是也有自己的多态
  • 动态类型是一种更高级的多态
  • 动态类型放低了对类型的要求,使语言能够根据上下文来判定变量类型
  • 使用 def 关键字定义变量,不过已使用了 final,private 这样的修饰符,def 可以省略