从 make 到 gradle,浅谈自动化构建工具
Posted DevOps时代
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从 make 到 gradle,浅谈自动化构建工具相关的知识,希望对你有一定的参考价值。
Gnu Make
CFLAGS ?= -g
all: helloworld
helloworld: helloworld.o
# Commands start with TAB not spaces
$(CC) $(LDFLAGS) -o $@ $^
helloworld.o: helloworld.c
$(CC) $(CFLAGS) -c -o $@ $<
clean: FRC
rm -f helloworld helloworld.o
# This pseudo target causes all targets that depend on FRC
# to be remade even in case a file with the name of the target exists.
# This works with any make implementation under the assumption that
# there is no file FRC in the current directory.
FRC:
尽管瑕不掩瑜,必须承认make在可靠性、性能和实现语言上有着许多缺陷【2】,尤其是在大项目中,make的缺点会在很大程度上被放大。
Apache Ant
Apache Maven
如何构建工程
描述对外部组件和Module的依赖关系
Maven的一些优势是相对的,例如,通过约定定义工程固然能提高可读性从而提高开发效率,但是这是建立在开发者能从Maven的角度理解工程的基础之上的,也就是说开发者必须理解Maven是如何工作的。因此一个刚刚接触Maven 的开发者很难直接从Maven工程文件中读懂在执行过程中到底发生了什么。
总之,ant更加灵活,但容易带来混乱;Maven更加规范,但是学习曲线较为陡峭。
Gradle
Gradle发布于2012年,是JVM生态下又一款开源的自动化构建工具(其他两款是Ant,Maven),建立在Apache Ant和Apache Maven的基础上,引入了基于Groovy的DSL(domain-specific language)代替XML,声明工程的configuration。
可伸缩性强大,性能出色。支持task之间的依赖设定;不仅可以以默认的形式引用在Maven中声明的约定,而且可以对其进行定制化;支持动态下载外部jar类库和plugin。DSL的引入,使得Gradle较之与ant和maven更加简洁清晰。
链接:https://www.jianshu.com/p/42b086cd91aa
投稿邮箱:jiachen@greatops.net 或 添加联系人微信:135 2116 9787(同微信)。
以上是关于从 make 到 gradle,浅谈自动化构建工具的主要内容,如果未能解决你的问题,请参考以下文章