初步学习ant和ivy总结(一)
1、ant是什么?
ant是一个基于xml的项目管理工具,它本身由很多target组成,各个target可以组成依赖关系,而这些依赖关系可以概括为DAG图,而各个target可以由多个task组成,每个task对应ant的插件,我们可以通过xml强大的表达能力来灵活配置自己想使用的task,我们编写target就是通过灵活组织ant的各个task(插件)来写task。常见的task有mkdir,javac,java,copy,get很多,我们用ant甚至可以替代c++的make,本质上ant可以看作是一个基于xml的脚本语言,可以定义变量,只不过我们经常用ant来对我们进行项目管理。
2、ivy是什么?
ant很简单,就是提供一个框架,而我们需要满足某一类需求时,我们只需要通过ant task的插件机制往里插即可,而一个Java工程的依赖管理是很复杂的,特别我们的工程越来越大时我们需要一个dependency manager来进行管理,而ivy就是插入ant的一组tasks,我们可以通过ivy的插件来实现我们的依赖管理。所以一般的项目我们是通过ant+ivy来进行项目管理。
3、为什么要是用maven
在更大的项目产生时,很多情况下,ant+ivy这套功能,在功能上很灵活,因为他们是过程性的,而项目管理上,无非是,clean,compile,test,jar,publish等等过程,而这些过程很大程度上是重复的,可以标准化的,从而maven应运而生,通过定义生命周期,每个生命周期,也是由一个个插件来实现功能,maven相比ant和ivy更为强大,且学习成本会更高一些。但更接近XP,apache下很多开源项目如spring,hibernate更多的倾向于是用maven来进行项目管理。
4、ant的学习过程相对简单,因为是过程性的,我们之需要像普通的程序那样去编写我们的ant就行。下面的几个笔记主要来记录ivy的学习过程。