基于ant、maven的构建工具Gradle

来源:互联网 发布:怎么重新淘宝实名认证 编辑:程序博客网 时间:2024/04/25 12:41

首先一句话描述Gradle:    简洁、简洁、简洁


1、什么是Gradle

1.1Gradle简介

是一个基于Apache AntApache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,一个强大的项目构建工具,和maven类似的功能而且拥有比maven更优秀快捷的效率。

依赖管理系统、多模块构建、一致的项目结构、一致的构建模型和插件机制是每一个构建工具所具备的最基本的也是最核心的功能。

2、为什么使用Gradle

2.1Gradle 的特点.

1. 声明式构建和合约构建

Gradle 的核心是基于 Groovy的 领域特定语言(DSL),具有十分优秀的扩展性. Gradle通过提供可以随意集成的声明式语言元素将声明性构建推到了一个新的高度.这些元素也为Java, Groovy, OSGi, WebScala等项目提供基于合约构建的支持.而且,这种声明式语言是可扩展的.你可以添加自己的语言元素或加强现有的语言元素,从而提供简洁,易于维护和易于理解的构建.

2. 基于依赖的编程语言

声明式语言位于通用任务图 ( general purpose task graph )的顶端,它可以被充分利用在你的构建中.它具有强大的灵活性,可以满足使用者对Gradle的一些特别的需求.

3. 让构建结构化

Gradle 的易适应性和丰富性可让你在构建里直接套用通用的设计原则.例如,你可以非常容易地使用一些可重用的组件来构成你的构建.但是不必要的间接内联内容是不合适的.不要强行拆分已经结合在一起的部分(例如,在你的项目层次结构中).避免使构建难以维护.总之,你可以创建一个结构良好,易于维护和易于理解的构建.

4. API深化

你会非常乐意在整个构建执行的生命周期中使用 Gradle, 因为Gradle 允许你管理和定制它的配置和执行行为.

5. Gradle 扩展

Gradle 扩展得非常好.不管是简单的独立项目还是大型的多项目构建,它都能显著的提高效率.这是真正的结构构建.顶尖水平的构建功能,还可以解决许多大公司碰到的构建 性能低下的问题.

6. 多项目构建

Gradle 对多项目的支持是非常出色的.项目依赖是很重要的部分.它允许你模拟在多项目构建中项目的关系,这正是你所要关注的地方. Gradle遵从你的布局,反过来就不是.

Gradle 提供了局部构建的功能.如果你构建一个单独的子项目, Gradle会构建这个子项目依赖的所有子项目.你也可以选择依赖于另一个特别的子项目重新构建这些子项目.这样在一些大型项目里就可以节省非常多的时间.

7. 多种方式来管理你的依赖

不同的团队有不同的管理外部依赖的方法. Gradle 对于任何管理策略都提供了合适的支持. 从远程MavenIvy库的依赖管理到本地文件系统的jars或者dirs.

8. Gradle 是第一个构建整合工具

Ant tasksGradle中很重要的部分,更有趣是Antprojects也是十分重要的部分. Gradle可以直接引入Ant项目,并在运行时直接将 Ant targets转换成Gradle tasks.你可以从Gradle中依赖它们,并增强它们的功能,甚至可以在build.xml文件中声明Gradle tasks的依赖.并且properties, paths等也可以通过同样的方法集成进来.

Gradle 完全支持你已有的 Maven或者lvy仓库来构造发布或者提取依赖. Gradle也提供了一个转化器,用来将mavenpom.xml文件转换成Gradle脚本.在运行时引入 Maven项目也会在稍后推出.

9. 易于迁移

Gradle 可以兼容任何结构.因此你可以直接在你的产品构建的分支上开发你的Gradle构建,并且二者可以并行.我们通常建议编写一些测试代码来确保它们的功能是相同的.通过这种方式,在迁移的时候就不会显得那么混乱和不可靠,这是通过婴儿学步的方式来获得最佳的实践.

10. Groovy

Gradle 的构建脚本是通过 Groovy编写的而不是XML.但是并不像其他方式,这并不是为了简单的展示用动态语言编写的原始脚本有多么强大.不然的话,只会导致维护构建变得非常困难. Gradle的整个设计是朝着一种语言的方向开发的,并不是一种死板的框架. Groovy就像胶水一样,把你像实现的构想和抽象的Gradle粘在一起. Gradle提供了一些标准的构想,但是他们并不享有任何形式的特权.相比于其他声明式构建系统,对我们来说这是一个比较突出的特点.

11. Gradle 包装器

Gradle 包装器允许你在没有安装 Gradle的机器上运行Gradle构建.在一些持续集成的服务器上,这个功能将非常有用.它同样也能降低使用一个开源项目的门槛,也就是说构建它将会非常简单.这个包装器对于公司来说也是很有吸引力的.它并不需要为客户机提供相应的管理防范.这种方式同样也能强制某一个版本Gradle的使用从而最小化某些支持问题.

12. 免费和开源

Gradle 是一个开源项目,遵循ASL许可.

3、Gradle怎么用?

3.1常用配置名称和作用

Repositories(仓库)

Dependencies(依赖)

Configurations(依赖配置)

Compile(用来编译项目源代码的依赖.)

testCompile(编译测试代码的依赖.默认的,包含生成的类运行所需的依赖和编译源代码的依赖)

Runtime(在运行时被生成的类使用的依赖.默认的,也包含了编译时的依赖.)

testRuntime(运行测试所需要的依赖.默认的,包含上面三个依赖.)

基本使用方法:参照构建依赖demo和每一个配置的作用。

4、Gradlemaven对比两者优缺点

4.1相同点

1、都是基于约定优于配置

2、构建仓库和依赖关系

 

4.2不同点

1、Mavenxml方式配置略多 gradlegroovy语言简洁快捷(groovy需要学习成本)

2、Gradle解决依赖冲突方面Gradle的实现机制更加明确

3、Gradle支持动态的版本依赖。在版本号后面使用+号的方式可以实现动态的版本管理

4、MavenGradle对依赖项的scope有所不同。在Maven世界中,一个依赖项有6scope,分别是complie(默认)providedruntimetestsystemimport。而grade将其简化为了4种,compileruntimetestCompiletestRuntime


前期了解,记录,加深学习继续优化补充..............


阅读全文
0 0
原创粉丝点击