Java构建工具介绍和Cybertron的选型

开发交流 精帖
收藏
2 1152
Sunny912
FoC 未认证 2019-03-04 10:58:19
付费话题:0 积分

1.  构建工具的历史

创世之初,世上只有Make一种构建工具。在Java生态中,最知名的构建工具非AntMavenGradle莫属。

 

Ant

Ant是第一个现代构建工具,在很多方面它有些像Make2000年发布,在很短时间内成为Java项目上最流行的构建工具。

 

Pros

l  学习曲线很缓,因此不需要什么特殊的准备就能上手

l  XML作为脚本编写格式,编写简单

l  基于过程式编程,便于理解

Cons

l  过程式编程,部分逻辑不易表达,如循环、break

    ?  虽然可以通过插件机制部分解决或优化,但插件会引入更大的知识范畴,增加学习曲线

l  使用XML作为脚本载体,冗余较多,只要项目规模稍大,就会导致构建脚本打到难以维护(Cybertron的前身 build.xml 2378 91KB

l  内置任务不足,任务简单,对现代构建的贴合度差

l  年事已高,维护更新较慢

Maven

Maven发布于2004年。目的是解决码农使用Ant所带来的一些问题。

 

Pros

l  相比Ant需要将执行task所需的全部命令都一一列出,依靠约定(convention)并提供现成的可调用的目标(goal

l  具备从网络上自动下载依赖的能力

Cons

l  XML作为配置文件的格式有严格的结构层次和标准,定制化目标(goal)很困难

l  主要聚焦于依赖管理,实际上用Maven很难写出复杂、定制化的构建脚本

l  依赖管理不能很好地处理相同库文件不同版本之间的冲突

l  由于同样采用XML作为脚本载体,因此配置文件会变得越来越大,越来越笨重

l  Maven库的访问在我们所处的环境中非常不稳定,虽然可以通过国内镜像解决,但依然是有成本的

Gradle

结合AntMaven二者的优点,并解决二者使用中的痛点,Gradle2012年华丽诞生并且很快地获得了广泛关注,甚至被Google采用作为Android OS的默认构建工具。

 

Pros

l  使用基于Groovy的专门的DSL,从而使Gradle构建脚本变得比用AntMaven写的要简洁清晰(截止到2019年3月主干版本的Cybertron build.gradle 922 34KB

    ?  脚本即代码,甚至可以直接在构建脚本中编写插件和类

    ?  对于复杂逻辑的定制非常方便

l  类似于Maven,提供众多现成的可调用的任务(task

l  内置有Ant,方便从Ant平滑过渡

l  借助于Gradle Wrapper技术,使构建者可以几乎不依赖任何第三方工具就可以完成构建

l  对多层次项目构建提供天生的支持

l  执行效率高,速度快

 

Cons

l  项目异常活跃,更新频繁。20162.x版本,20174.x版本,20185.x版本

l  相比Ant,学习曲线更陡,入门上手有难度

 

2.  Cybertron的选型标准

l  能够支持多层次项目构建

l  具有丰富的内建任务,简化构建脚本的维护

l  支持复杂、灵活的定制化脚本能力

l  拥有众多插件的支持


所以,结论你懂的。。。选择Gradle就变成了很自然的事情

 


回帖
  • Ethan
    2019-03-07 14:10:24

    Gradle 确实很好用   

    0 回复
  • 一辉
    2019-03-04 22:00:08

    对于一个开发平台来说,易用的开发环境是必不可少的,这也是赛博坦平台的优点。

    0 回复