0
点赞
收藏
分享

微信扫一扫

Gradle使用Day01-Gradle基本介绍

泠之屋 2022-02-14 阅读 67



Gradle基本介绍


  • ​​Gradle特点​​
  • ​​Gradle基本介绍​​
  • ​​Gradle Wrapper​​
  • ​​Groovy​​
  • ​​为什么使用Groovy​​


Gradle特点

  • Gradle是一个基于JVM的富有突破性构建工具:

  • Gradle是一个开源项目,并遵循ASL许可
  • 类似ant的灵活的构建工具
  • 可切换,类似maven的基于约定约定优于配置的构建框架
  • 强大的多工程构建支持
  • 强大的基于ApacheIvy的依赖管理
  • 对已有的mavenivy仓库的全面支持
  • 支持传递性依赖管理,不需要远程仓库或者pom.xml或者ivy配置文件\
  • ant式的任务和构建是gradle的第一公民
  • 基于groovy,Gradlebuild脚本使用groovy dsl编写
  • 具有广泛的领域模型支持构建

Gradle基本介绍


  • 基于声明的构建和基于约定的构建:

  • Gradle的核心在于基于Groovy 的丰富而可扩展的域描述语言DSL
  • Groovy通过声明性的语言元素将基于声明的构建推向下层,可以按照需要的方式进行组合
  • 这些元素同样也为支持Java,Groovy,OSGi,WebScala项目提供了基于约定的构建
  • 这种声明性的语言是可以扩展的.可以添加新的或增强现有的语言元素
  • 因此 ,Gradle提供了简明,可维护和易理解的构建

  • 提供语言支持以依赖为基础的编程方式:

  • 声明性语言优点在于通用任务图
  • 可以将声明性语言充分利用在构建中,提供了最大限度的灵活性,可以让Gradle适应自定义的需求

  • 构建结构化:

  • Gradle的灵活和丰富性能够支持在构建中应用通用的设计模式

  • 可以很容易地将构建拆分为多个可重用的模块,最后再进行组装
  • 但是不要强制地进行模块的拆分,不要把原本在一起的东西强行分开,比如项目结构里

  • 以创建一个结构良好,易于维护,易于理解的构建

  • 深度API:
  • Gradle允许在构建执行的整个生命周期,对核心配置及执行行为进行监视并自定义
  • Gradle的扩展:

  • Gradle有非常良好的扩展性
  • 从简单的单项目到庞大的多项目构建,都能显著地提升效率
  • 是真正的结构化构建,通过先进的增量构建功能,可以解决许多性能问题

  • 多项目构建:

  • Gradle对多项目构建的支持非常出色

  • 项目依赖是首先需要考虑的问题,允许在多项目构建当中对项目依赖关系进行建模,因为这些才是真正的问题域
  • Gradle遵守项目的布局

  • Gradle提供了局部构建的功能:

  • 如果在构建一个单独的子项目 ,Gradle会构建它所依赖的所有子项目
  • 也可以选择重新构建依赖于特定子项目的子项目
  • 这种增量构建将使得在大型构建任务中省下大量时间


  • 多种方式管理依赖:
  • Gradle对所有的管理策略都提供了方便的支持:

  • MavenIvy的远程仓库的传递依赖管理
  • 本地文件系统的jar包或目录

  • Gradle是构建集成工具:

  • Ant tasks是最重要的 ,Ant projects也是最重要的
  • Gradle对任意的Ant项目提供了深度导入,并在运行时将Ant目标target转换为原生的Gradle任务task
  • 可以从Gradle上依赖Ant targets, 增强Ant targets, 甚至在build.xml上定义对Gradle tasks的依赖
  • Gradle为属性,路径等提供了同样的整合
  • Gradle完全支持用于发布或检索依赖的MavenIvy仓库 .Gradle提供了一个转换器,用于将一个Mavenpom.xml文件转换为一个Gradle脚本

  • 易于移植:

  • Gradle能适应已有的任何结构
  • 总可以在构建项目的同一个分支当中开发Gradle构建脚本,并且能够并行进行
  • 通常建议编写测试,以保证生成的文件是一样的
  • 这种移植方式会尽可能的可靠和减少破坏性,这也是重构的最佳做法


Gradle Wrapper


  • Gradle Wrapper允许在没有安装Gradle的机器上执行Gradle构建
  • 这样对一些持续集成服务来说,对一个开源项目保持低门槛构建是非常有用的
  • Wrapper使得对客户端计算机零配置,强制使用指定的版本以减少兼容支持问题

Groovy


  • Gradle的构建脚本是采用Groovy写的,而不是用XML
  • 与其余方法不同 ,Gradle并不只是展示了由一种动态语言编写的原始脚本的强大,那样会导致维护构建变得很困难
  • Gradle的整体设计是面向被作为一门语言,而不是一个僵化的框架
  • Groovy允许通过抽象的Gradle描述个人的story,Gradle提供了一些标准通用的story, 这是相比其余声明性构建系统的主要特点
  • Groovy不止支持简单的糖衣层,整个GradleAPI都是完全groovy化的,只有通过Groovy才能去运用并提高效率

为什么使用Groovy


  • 基于一种动态语言内部DSL相比XML在构建脚本方面优势非常大
  • Gradle核心目的是作为通用构建工具 ,Gradle内部的运行环境还是主要面向Java项目


举报

相关推荐

0 条评论