在学校的时候还老是本身用eclipse自带的jar导出工具,而后人工来给项目打包,那是至关的原始。
然后工做了,项目中都是用ant,慢慢的开始学会使用这个工具。感受就和脚本同样,很容易读懂,作项目构建仍是不错的。
最近开一些开源的项目,基本都没有使用ant的了,以maven2居多,也有ivy和其余的。看来项目构建工具是发展了,有了更多的新东西出来,那到底哪一个好一点呢?最近查了点资料,横向比较一下吧。
我初步调查了一下Maven, Ivy, Gradle, sbt这4个工具
Maven2:
当今最为流行的构建工具,提供了项目构建、测试、发布等一整套流程的管理。当年很是有预见性的提供了一套包依赖的解决方案,可是这个方案设计不够好,也一直被人们诟病。提供了比较强的规约,有人认为这很不自由,可是我以为这样的规范更好,特别是目录结构有个统一标准,这样很是清晰。可是他的配置文件写起来确实有点麻烦,特别是一个ant工程要转过来,真的要花很多工夫。
Ivy:
Apache提供的一个ant的子项目,和ant彻底兼容,用起来却是方便了。提供了一套更合理的包依赖解决方案,还能够直接使用Maven的包依赖库,真是充分利用已有资源啊,难道这样不侵权?其余方面都是一些对ant的简单扩充,其实并无太多新的特性。
Gradle:
用了Grails感受他的配置仍是很清爽的,其调用的就是Gradle。最大的特色就是用Groovy脚原本代替了XML,同时也处理了包依赖问题。但用的人貌似不是不少,属于潜力股。
sbt:
全称是simple build tool,是在Ivy基础上进行的封装,引入了Maven的目录结构,具体配置又是直接使用Scala,算是各类的综合体。在Scala项目中使用应该仍是不错的,惋惜目前的版本只支持Scala2.7.7,并且看了下demo感受配置起来也有点麻烦。
看来看去,感受其实只使用ant也没有什么特别大的问题。若是非要用替换,使用Ivy感受风险最小,项目组接受程度会高点。如今项目的ant脚本已经写好了,等有空引入Ivy吧~,目录结构仍是用Maven的好了