浅谈java构建工具的选择

简介:

在学校的时候还总是自己用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的好了


本文转自passover 51CTO博客,原文链接:http://blog.51cto.com/passover/425910,如需转载请自行联系原作者
相关文章
|
搜索推荐 Java
Java基础数组-选择排序算法
Java基础数组-选择排序算法
Java基础数组-选择排序算法
|
Java 程序员
Java基础if选择01
Java基础if选择01
|
算法 搜索推荐 Java
线性时间选择(Top K)问题(Java)
线性时间选择(Top K)问题(Java)
198 0
线性时间选择(Top K)问题(Java)
|
Java 大数据
java 垃圾收集器选择
Available Collectors Selecting a Collector
java 垃圾收集器选择
|
开发框架 架构师 Java
2.1为什么选择 Java Spring Cloud 微服务架构| 学习笔记
快速学习2.1为什么选择 Java Spring Cloud 微服务架构。
359 0
2.1为什么选择 Java Spring Cloud 微服务架构| 学习笔记
|
Java C++
Java学习笔记 03、选择、循环结构
Java学习笔记 03、选择、循环结构
Java课后练习 对应冒泡排序、直接选择排序、直接插入排序进行选择调用,手动输入一组数字(空格隔开)转为数组 最后排序前后结果
Java课后练习 对应冒泡排序、直接选择排序、直接插入排序进行选择调用,手动输入一组数字(空格隔开)转为数组 最后排序前后结果
Java课后练习 对应冒泡排序、直接选择排序、直接插入排序进行选择调用,手动输入一组数字(空格隔开)转为数组 最后排序前后结果