Gradle 功能简介及使用
Posted 54吃瓜群众
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle 功能简介及使用相关的知识,希望对你有一定的参考价值。
Gradle 功能简介及使用
Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。
Gradle可以自动化地进行软件构建、测试、发布、部署、软件打包,同时也可以完成项目相关功能如:生成静态网站、生成文档等。
Gradle集合了Ant的灵活性和强大功能,同时也集合了Maven的依赖管理和约定,从而创造了一个更有效的构建方式。凭借Groovy的DSL和创新打包方式,Gradle提供了一个可声明的方式,并在合理默认值的基础上描述所有类型的构建。 Gradle目前已被选作许多开源项目的构建系统。
声明式构建和约定式构建
Gradle的核心是一个以Groovy语言为基础的可扩展领域专有语言(DSL)。Gradle 提供了可声明的语言元素,你可以对这些语言元素进行任意的组装,Gradle采用这种方式将声明式构建推向了更高的一个水平。这些定义的语言元素同时也提供了多种语言项目的约定式构建的支持,包括:Java、Groovy、OSGI、Web以及Scala工程。另外,这种声明式语言也是可扩展的。你可以增加新的语言元素或者对已存在的语言元素进行重构增强。因此Gradle可以提供准确的、可维护并且易于理解的构建
为以依赖为基础的编程方式提供语言支持
声明式语言优点在于通用的任务图,你将其充分地利用到你的构建中。它提供了最大的灵活性,以让Gradle适应你的独特需求。
结构化你的构建
Gradle的灵活和丰富特性支持在你的构建中应用通用的设计模式。例如:Gradle可以很容易地将你的构建拆分为多个可重用的模块,最后再进行组装,但不要强制地进行模块的拆分。同时需要避免“发散式修改”和“霰弹式修改”,这样会是你的构建维护变成一场噩梦。最后你可以创建一个结构良好、容易维护、并容易理解的构建。
深度API
Gradle不仅支持在整个构建的生命周期中嵌入钩子(hooks),还支持监控及自定义其核心配置及执行行为。
Gradle的伸缩性
Gradle的伸缩性非常好。它可以极高地提升生产力,它可以应用于一个简单的工程同时也可以应用与超大型的企业级多工程构建,而这才是真正的构建。利用最先进的增量构建功能,可以解决大企业在构建时所遇到的性能问题。
多项目构建
Gradle对多项目的构建非常优秀。而项目依赖则是需要首要考虑的问题。在一个多项目的构建中Gradle允许你定义项目间的依赖关系。
Gradle提供并行构建功能。如果你只是构建某个子项目,Gradle将会自动构建该子项目所依赖的其他项目,你也可以选择重新构建依赖于该子项目的其他所有子项目。
多方式管理你的依赖
不同的团队喜欢不同的方式来管理外部依赖。Gradle提供对任意外部依赖管理策略的支持。包括Maven和ivy远程依赖管理,同时也包括本地jar和文件夹的依赖管理。
Gradle是第一个构建集成工具
Gradle提供了完整的Ant项目的导入功能。让Ant的目标(Target)在运行时变成一个本地的Gradle任务。你可以在Gradle中依赖这些任务,同时你也可以在Gradle中对其进行增强,你甚至可以在你的build.xml中声明Gradle任务的依赖。类似地Gradle也支持对Ant中的properties、paths等的集成支持。
Gradle全面支持已存在的Maven和Ivy仓库体系,支持在这些仓库中发布和查询依赖。Gradle同时也提供了一个转换器,用于将Maven的pom.xml转换成一个Gradle脚本。而在运行时导入Maven项目的功能还在开发中。
简单的迁移
Gradle可以适应你的项目中所采用的任何结构。因此你可以在你的产品版本分支中同时采用Gradle构建和原有构建方式。Gradle建议编写测试以确认两种方式所编译出的构件是一致的。这种迁移方式是改变最小最可靠。这也是采用了重构最佳实践“baby steps”
Groovy
Gradle的构件脚本采用Groovy编写而不是XML。但是并不像其他方式Gradle并不是简单地暴露动态语言的原始能力,因为如果这样会让构建难以维护。Gradle的所有设计都是考虑自己被作为一门语言来使用的,而不是一个死板的框架。Groovy则提供了类似胶水的功能,它允许你采用Gradle自定义单独的任务。Gradle提供了一些抽象的任务,但这些任务在任何情形下都没有特权,而这也是Gradle区别于其他构建系统的主要特性。Gradle的Groovy支持并不是仅仅是简单的封装,Gradle所有的API都可以在Groovy中使用。
Gradle Wrapper
Gradle Wrapper允许你在任何没有安装Gradle的系统中执行Gradle的构建脚本。这个对于持续集成服务器是非常方便的。Gradle也适用于开源项目,以降低其构建的门槛。Wrapper同时也适用于企业项目。Gradle构建的客户机不需要任何配置,同时也可以强制限制构建使用指定的Gradle版本,从而最小化由于构建环境差异可能带来的问题。
关注一下又不会怀孕!
以上是关于Gradle 功能简介及使用的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件组件化中的 Gradle 构建脚本实现 ① ( 组件化简介 | 创建组件化应用 | 依赖库模块 / 应用模块 切换设置 )
Eclipse Maven和Gradle区别及使用Eclipse中使用Gradle下载Jar包
Android Gradle 插件Gradle 构建工具简介 ③ ( Gradle 构建脚本编程语言 | Groovy 语言简介 | Groovy 语言特性 )