近来
![](/icons/86854dou.gif)
有很多有关Maven
![](/icons/86854de.gif)
有用性
![](/icons/86854de.gif)
辩论
![](/icons/86854dou2.gif)
Maven是
![](/icons/86854yi.gif)
个基于Java
![](/icons/86854de.gif)
构建和依赖管理工具
![](/icons/86854dou.gif)
应用在很多项目中
![](/icons/86854dou2.gif)
InfoQ深入调查了这个辩论以理解当前
![](/icons/86854de.gif)
问题是什么以及辩论得出了什么结果
Apache Tapestry和Apache HiveMind
![](/icons/86854de.gif)
创建者Howard Lewis Ship最近发表了
![](/icons/86854yi.gif)
篇博文
![](/icons/86854dou.gif)
在其中他描述了在他目前正在做
![](/icons/86854de.gif)
![](/icons/86854yi.gif)
个项目使用Maven碰到
![](/icons/86854de.gif)
![](/icons/86854yi.gif)
些问题:
在Eclipse和IDEA中
![](/icons/86854dou.gif)
Maven都是非常缓慢、bug多而且不稳定
![](/icons/86854de.gif)
![](/icons/86854dou2.gif)
IDEA 7比Eclipse(带有0.0.12Maven插件)好
![](/icons/86854yi.gif)
点点
![](/icons/86854dou.gif)
![](/icons/86854yinwei.gif)
前者
![](/icons/86854de.gif)
同步功能是很直接
![](/icons/86854de.gif)
![](/icons/86854dou2.gif)
然而
![](/icons/86854dou.gif)
要让Maven工作
![](/icons/86854dou.gif)
看起来需要没完没了
![](/icons/86854de.gif)
调整、修补和祈祷
![](/icons/86854dou2.gif)
Maven在核心有
![](/icons/86854yi.gif)
个伟大
![](/icons/86854de.gif)
思想(真正很好地解决依赖管理
![](/icons/86854de.gif)
问题)
![](/icons/86854dou.gif)
但是采用了
![](/icons/86854yi.gif)
个非常糟糕
![](/icons/86854de.gif)
插件系统来执行构建
![](/icons/86854dou2.gif)
令人痛苦的处是
![](/icons/86854dou.gif)
![](/icons/86854yi.gif)
个在星期
![](/icons/86854yi.gif)
工作
![](/icons/86854de.gif)
好好
![](/icons/86854de.gif)
构建可能在星期 2失败
![](/icons/86854dou.gif)
原因是有新
![](/icons/86854de.gif)
、破损
![](/icons/86854de.gif)
插件被发布到中心Maven仓库
![](/icons/86854dou2.gif)
Ship还介绍说明了缺乏文档是理解和使用Maven
![](/icons/86854de.gif)
![](/icons/86854yi.gif)
个主要障碍
![](/icons/86854dou.gif)
他推荐使用Ivy作为候选
![](/icons/86854de.gif)
依赖管理系统
![](/icons/86854dou2.gif)
Eugene Kuleshov 指出将插件版本号加入Maven
![](/icons/86854de.gif)
pom.xml文件可以解决破损插件
![](/icons/86854de.gif)
问题
![](/icons/86854dou.gif)
而Charles Miller 回应说在Maven
![](/icons/86854de.gif)
用户或者安装指南中都没有这个建议
Don Brown最近也撰写博文说他创建了
![](/icons/86854yi.gif)
个新
![](/icons/86854de.gif)
Maven构建
![](/icons/86854dou.gif)
解决了他在Maven 2中发现
![](/icons/86854de.gif)
![](/icons/86854yi.gif)
些问题
![](/icons/86854dou.gif)
包括加入HTTP连接池和并行制品下载
![](/icons/86854dou2.gif)
在Maven
![](/icons/86854de.gif)
这个分支上工作正在进行着
![](/icons/86854dou.gif)
这些变化有希望重新整合进入主干版本中
![](/icons/86854dou2.gif)
还有很多人加入了这场辩论中
![](/icons/86854dou.gif)
Jonas Fagundes质疑为什么Grails不用Maven
![](/icons/86854dou.gif)
并且评论:
Maven是
![](/icons/86854yi.gif)
个奇妙
![](/icons/86854de.gif)
工具
![](/icons/86854dou.gif)
我们希望每种语言都有这样
![](/icons/86854de.gif)
工具
![](/icons/86854dou2.gif)
它是
![](/icons/86854yi.gif)
个模块化项目构建工具
![](/icons/86854dou2.gif)
它能够管理依赖、构建周期、测试、 打包并且在仓库中发布你
![](/icons/86854de.gif)
制品
![](/icons/86854dou2.gif)
它是
![](/icons/86854yi.gif)
个项目构建工具
![](/icons/86854dou.gif)
领先于通常
![](/icons/86854de.gif)
构建工具(实际上它
![](/icons/86854de.gif)
第
![](/icons/86854yi.gif)
个版本是在Ant的上
![](/icons/86854de.gif)
![](/icons/86854yi.gif)
层)
![](/icons/86854dou2.gif)
它为你
![](/icons/86854de.gif)
项目提供了
![](/icons/86854yi.gif)
个缺省
![](/icons/86854de.gif)
路径布局
![](/icons/86854dou.gif)
这些缺省路径真
![](/icons/86854de.gif)
很美妙
![](/icons/86854dou.gif)
你开始需要做
![](/icons/86854de.gif)
仅仅是选择
![](/icons/86854yi.gif)
个名称来创建你
![](/icons/86854de.gif)
项目和缺省包
![](/icons/86854dou2.gif)
所有其它
![](/icons/86854de.gif)
事情都已准备停当
![](/icons/86854dou.gif)
如果你
![](/icons/86854de.gif)
需要有所区别
![](/icons/86854dou.gif)
你 可以提供配置
![](/icons/86854dou.gif)
在后者情况下你可以提供
![](/icons/86854yi.gif)
个新
![](/icons/86854de.gif)
被maven仓库所管理
![](/icons/86854de.gif)
插件(插件只是另外
![](/icons/86854yi.gif)
种依赖
![](/icons/86854dou.gif)
在你配置了你
![](/icons/86854de.gif)
pom文件的后
![](/icons/86854dou.gif)
插件会被自动下 载)
![](/icons/86854dou2.gif)
它早在rails社区提出惯例优于配置这个术语的前就采用了该策略
![](/icons/86854dou2.gif)
G2One
![](/icons/86854de.gif)
CTO
![](/icons/86854dou.gif)
Graeme Rocher 回应了Fagundes并且介绍说明了为什么Grails不使用Maven
![](/icons/86854dou.gif)
他说Grails
![](/icons/86854de.gif)
主要思想是简化Java EE:
现在Maven完全是Grails思想
![](/icons/86854de.gif)
反面
![](/icons/86854dou2.gif)
为什么每当我要创建
![](/icons/86854yi.gif)
个项目
![](/icons/86854de.gif)
时候我不得不去读他们
![](/icons/86854de.gif)
用户手册?我
![](/icons/86854de.gif)
意思是我没有办法记住这些垃圾而且他们
![](/icons/86854de.gif)
文档十分恶心
![](/icons/86854dou.gif)
难以上手
![](/icons/86854dou2.gif)
我认为只有Java人会乐于接受象Maven这么复杂
![](/icons/86854de.gif)
构建系统
![](/icons/86854dou2.gif)
其他任何社区都会说“这是什么玩意?”
![](/icons/86854dou2.gif)
对于我来说
![](/icons/86854dou.gif)
Maven就是构建系统
![](/icons/86854de.gif)
EJB2:过于复杂
![](/icons/86854dou.gif)
过于工程师化而且需要
![](/icons/86854yi.gif)
个智能
![](/icons/86854de.gif)
、有代码生成功能
![](/icons/86854de.gif)
IDE和其
![](/icons/86854yi.gif)
起工作
![](/icons/86854dou2.gif)
Rocher还指出Grails有Maven
![](/icons/86854de.gif)
支持
![](/icons/86854dou.gif)
但不是缺省
![](/icons/86854de.gif)
![](/icons/86854dou.gif)
而且他怀疑Maven最终会被Gant、Raven 或者Buildr这样
![](/icons/86854de.gif)
构建工具所替代
![](/icons/86854dou2.gif)
Matt Raible 针对Rocher
![](/icons/86854de.gif)
帖子发表了跟帖
![](/icons/86854dou.gif)
指出了两个主要问题
![](/icons/86854dou.gif)
并且对问题提出了潜在
![](/icons/86854de.gif)
解决方案:
糟糕
![](/icons/86854de.gif)
中心仓库元数据 —— 如果依赖是基于用户反馈而确定
![](/icons/86854de.gif)
![](/icons/86854dou.gif)
那么仓库
![](/icons/86854de.gif)
元数据会干净很多
POM.xml是项目元数据
![](/icons/86854de.gif)
来源 —— XML和pom.xml
![](/icons/86854de.gif)
啰嗦语法使得构建难以解析
![](/icons/86854dou.gif)
用其他格式(如Groovy)来指定项目元数据
![](/icons/86854dou.gif)
这样会简单
![](/icons/86854yi.gif)
些
Raible补充道:
我仍然是
![](/icons/86854yi.gif)
个Maven
![](/icons/86854de.gif)
粉丝
![](/icons/86854dou.gif)
主要是
![](/icons/86854yinwei.gif)
他极大
![](/icons/86854de.gif)
简化了AppFuse
![](/icons/86854de.gif)
维护和发行工作
![](/icons/86854dou2.gif)
当我将来做GWT、Seam或者 Grails开发
![](/icons/86854de.gif)
时候
![](/icons/86854dou.gif)
我会尝试使用Maven来做开发工作
![](/icons/86854dou2.gif)
为什么?
![](/icons/86854yinwei.gif)
我已经学会了如何使用Maven而且我没有感到其他人谈到
![](/icons/86854de.gif)
痛苦
![](/icons/86854dou2.gif)
我认为在真 正
![](/icons/86854de.gif)
大型项目(例如产生超过30个WAR
![](/icons/86854de.gif)
构建)中Maven真
![](/icons/86854de.gif)
很炫
![](/icons/86854dou2.gif)
在真正
![](/icons/86854de.gif)
大型项目中
![](/icons/86854dou.gif)
![](/icons/86854yi.gif)
个基于Ant
![](/icons/86854de.gif)
系统会变得难以承受而且难于维护
![](/icons/86854dou2.gif)
不仅如 此
![](/icons/86854dou.gif)
而且用Ant是非常难以维护
![](/icons/86854yi.gif)
个模块化
![](/icons/86854de.gif)
构建系统(你可以构建/测试/部署
![](/icons/86854yi.gif)
个单独
![](/icons/86854de.gif)
WAR)
![](/icons/86854de.gif)
![](/icons/86854dou2.gif)
根据我
![](/icons/86854de.gif)
经验
![](/icons/86854dou.gif)
真正大
![](/icons/86854de.gif)
基于Ant
![](/icons/86854de.gif)
系统总是处理那 些最新
![](/icons/86854de.gif)
东西
![](/icons/86854dou.gif)
而基于Maven
![](/icons/86854de.gif)
系统各个部分的间是互相依赖
![](/icons/86854de.gif)
![](/icons/86854dou.gif)
需要你保持它们最新
![](/icons/86854dou2.gif)
Maven
![](/icons/86854de.gif)
确需要你更聪明
![](/icons/86854yi.gif)
些并在你
![](/icons/86854de.gif)
子项目上运行“mvn
![](/icons/86854install.gif)
”
![](/icons/86854dou.gif)
但是我宁愿这样也不愿意等5分钟来让Ant仅仅为了运行
![](/icons/86854yi.gif)
个测试而处理所有
![](/icons/86854de.gif)
事情
![](/icons/86854dou2.gif)
其他
![](/icons/86854yi.gif)
些意见:
boomtown15 —— 我难以相信人们这么容易放弃Maven
![](/icons/86854dou2.gif)
如果你遵循惯例
![](/icons/86854dou.gif)
它实际上很简单
![](/icons/86854de.gif)
![](/icons/86854dou2.gif)
我承认
![](/icons/86854dou.gif)
建立第
![](/icons/86854yi.gif)
个项目有点困难
![](/icons/86854dou.gif)
我也同意学习曲线有
![](/icons/86854yi.gif)
点陡峭
![](/icons/86854dou.gif)
但是我相信益处超过这些问题
![](/icons/86854dou2.gif)
Xavier Hanin —— 那么
![](/icons/86854dou.gif)
我是
![](/icons/86854yi.gif)
个Maven
![](/icons/86854de.gif)
拥护者么?是也不是
![](/icons/86854dou2.gif)
我喜欢Maven
![](/icons/86854de.gif)
思想
![](/icons/86854dou.gif)
能够用
![](/icons/86854yi.gif)
种标准
![](/icons/86854de.gif)
方式来构建
![](/icons/86854yi.gif)
个项目真
![](/icons/86854de.gif)
很棒
![](/icons/86854dou2.gif)
我不喜欢
![](/icons/86854de.gif)
地方是缺乏文档、灵活性和鲁棒性
![](/icons/86854dou.gif)
而且Maven有太多
![](/icons/86854de.gif)
巫术
![](/icons/86854dou2.gif)
Les —— [……]我
![](/icons/86854yi.gif)
直惊讶于这些对maven
![](/icons/86854de.gif)
攻击
![](/icons/86854dou2.gif)
Maven学习曲线
![](/icons/86854de.gif)
开始部分比较高
![](/icons/86854dou.gif)
但是当事情变得更复杂
![](/icons/86854de.gif)
时候工作就简单了
![](/icons/86854dou2.gif)
Tech Per —— 我同意maven过于复杂
![](/icons/86854dou.gif)
过于工程师化而且缺乏好
![](/icons/86854de.gif)
文档
![](/icons/86854dou.gif)
但是我仍然有
![](/icons/86854yi.gif)
个感觉
![](/icons/86854dou.gif)
maven是最好
![](/icons/86854de.gif)
构建工具
![](/icons/86854dou2.gif)
我每天用maven
![](/icons/86854dou.gif)
是
![](/icons/86854de.gif)
![](/icons/86854dou.gif)
我埋怨 maven
![](/icons/86854dou2.gif)
我也曾尝试回头使用ant(我对ant也非常了解)
![](/icons/86854dou.gif)
……使用ant是
![](/icons/86854yi.gif)
种痛苦
![](/icons/86854dou2.gif)
所以
![](/icons/86854dou.gif)
我发现了我从maven得到了多少益处
![](/icons/86854dou2.gif)
Ortwin —— 我们现在使用Ant来构建大型项目
![](/icons/86854dou.gif)
![](/icons/86854yinwei.gif)
维护
![](/icons/86854yi.gif)
个Maven构建需要太多
![](/icons/86854de.gif)
时间和知识
![](/icons/86854dou2.gif)
虽然Ant构建不是非常简单
![](/icons/86854dou.gif)
但是至少它不总是崩溃
![](/icons/86854dou2.gif)
下
![](/icons/86854yi.gif)
次我会使用Bash脚本
![](/icons/86854dou2.gif)
用XML编程
![](/icons/86854de.gif)
所有这些都不方便
Steve —— Netbeans
![](/icons/86854de.gif)
Maven支持领先于所有我所见过
![](/icons/86854de.gif)
IDE
![](/icons/86854dou2.gif)
我在中等大小
![](/icons/86854de.gif)
项目中每天使用Maven
![](/icons/86854dou.gif)
它给项目带来了很多好处
![](/icons/86854dou.gif)
我无法想象失去它会怎 样
![](/icons/86854dou2.gif)
学习如何驯服Maven
![](/icons/86854de.gif)
确需要
![](/icons/86854yi.gif)
些投资
![](/icons/86854dou.gif)
但是
![](/icons/86854yi.gif)
旦你掌握了你会发现Maven是最好
![](/icons/86854de.gif)
![](/icons/86854dou2.gif)
依赖管理、基于目
![](/icons/86854de.gif)
![](/icons/86854de.gif)
介绍、理解构建生命周期阶段
![](/icons/86854dou.gif)
小心你增加
![](/icons/86854de.gif)
是什么仓库
![](/icons/86854dou.gif)
这些都是驯服这头野兽
![](/icons/86854de.gif)
关键
![](/icons/86854dou2.gif)
Kevin Menard —— 依我愚见
![](/icons/86854dou.gif)
快照系统不起作用
![](/icons/86854dou2.gif)
正常使用快照
![](/icons/86854de.gif)
时候
![](/icons/86854dou.gif)
项目可以让早期
![](/icons/86854de.gif)
使用者用快照来做测试
![](/icons/86854dou.gif)
这是
![](/icons/86854yi.gif)
个伟大
![](/icons/86854de.gif)
思路方法
![](/icons/86854dou2.gif)
但是
![](/icons/86854dou.gif)
它经常出问题
![](/icons/86854dou.gif)
成为阻碍正式版本
![](/icons/86854de.gif)
障碍
![](/icons/86854dou2.gif)
distiller —— [……]我过去宣传Maven
![](/icons/86854dou.gif)
但是现在成为
![](/icons/86854yi.gif)
个Ivy
![](/icons/86854de.gif)
倡导者
![](/icons/86854dou2.gif)
Ivy在你如何建立你
![](/icons/86854de.gif)
仓库方面比Maven灵活
![](/icons/86854de.gif)
多
![](/icons/86854dou.gif)
![](/icons/86854yinwei.gif)
构建工作委托给Ant了
![](/icons/86854dou.gif)
所以Ivy不象Maven那样试图规定你
![](/icons/86854de.gif)
项目结构
Jay —— [Howard Lewis Ship]
![](/icons/86854dou.gif)
你
![](/icons/86854de.gif)
意见是成立
![](/icons/86854de.gif)
![](/icons/86854dou.gif)
我已经象你
![](/icons/86854yi.gif)
样被Maven整了很多次 —— 下载破损
![](/icons/86854de.gif)
版本
![](/icons/86854dou.gif)
明显
![](/icons/86854cuowu.gif)
![](/icons/86854de.gif)
文档
![](/icons/86854dou.gif)
等等
![](/icons/86854dou.gif)
但是有什么选择?请给我
![](/icons/86854yi.gif)
个惯例优于配置、依赖管理并且有丰富插件
![](/icons/86854de.gif)
工具
![](/icons/86854dou.gif)
我会考虑
![](/icons/86854de.gif)
![](/icons/86854dou2.gif)
在目前阶段
![](/icons/86854dou.gif)
精力应该被用 于解决你提出
![](/icons/86854de.gif)
问题(文档问题特别糟糕)而不是从头开始
![](/icons/86854dou2.gif)
Jon Scott Stevens —— [……] 下面仅供参考……我们已经面试了许多申请Java开发者职位
![](/icons/86854de.gif)
人
![](/icons/86854dou.gif)
许多人都说了maven
![](/icons/86854de.gif)
优点
![](/icons/86854dou2.gif)
Peter Backlund —— Maven是
![](/icons/86854yi.gif)
个非常有用
![](/icons/86854de.gif)
工具
![](/icons/86854dou.gif)
我已经在很多项目中使用了它
![](/icons/86854dou.gif)
效果很好
![](/icons/86854dou2.gif)
你需要适应Maven
![](/icons/86854de.gif)
哲学
![](/icons/86854dou.gif)
否则你可能会很惨
![](/icons/86854dou2.gif)
如果你
![](/icons/86854de.gif)
态度是“这是我组织
![](/icons/86854yi.gif)
个项目
![](/icons/86854de.gif)
方式
![](/icons/86854dou.gif)
现在我要让Maven适应我
![](/icons/86854de.gif)
方式!”
![](/icons/86854dou.gif)
你会处于悲惨世界中
![](/icons/86854dou2.gif)
如果你和Maven好好相处
![](/icons/86854dou.gif)
你会免费得到很多好处
![](/icons/86854dou2.gif)
Matt Raible —— 我不认为所有人都认为Maven是
![](/icons/86854yi.gif)
个坏主义 —— 它是
![](/icons/86854yi.gif)
个好主义
![](/icons/86854de.gif)
坏实现
![](/icons/86854dou2.gif)
Rick Hightower ——我每天诅咒Maven
![](/icons/86854dou2.gif)
我每天赞美Maven
![](/icons/86854dou2.gif)
我对它是爱恨交加
![](/icons/86854dou2.gif)
虽然Maven本可以做得更好
![](/icons/86854dou.gif)
但是使用Ant简直就是梦魇
![](/icons/86854dou2.gif)
我旅行了很多地方
![](/icons/86854dou.gif)
做 了很多咨询/开发工作……我看到了太多打结
![](/icons/86854de.gif)
Ant构建脚本
![](/icons/86854dou2.gif)
至少用maven
![](/icons/86854dou.gif)
我只需要驯服
![](/icons/86854yi.gif)
头野兽和顺从
![](/icons/86854yi.gif)
个哲学
![](/icons/86854dou2.gif)
用Ant
![](/icons/86854dou.gif)
那简直就是随时出现
![](/icons/86854de.gif)
有 很多头
![](/icons/86854de.gif)
野兽
![](/icons/86854dou2.gif)
Bryan Taylor —— Maven中确实有
![](/icons/86854yi.gif)
些革新
![](/icons/86854de.gif)
思想
![](/icons/86854dou.gif)
但是它也有
![](/icons/86854yi.gif)
些令我害怕
![](/icons/86854de.gif)
东西
![](/icons/86854dou2.gif)
早在Ruby on Rails风潮的前
![](/icons/86854dou.gif)
Maven依靠
![](/icons/86854de.gif)
就是“惯例优于配置”
![](/icons/86854de.gif)
思想
![](/icons/86854dou.gif)
但滑稽
![](/icons/86854de.gif)
是RoR被公认为是这个思想
![](/icons/86854de.gif)
发明者
![](/icons/86854dou2.gif)
这是有原因
![](/icons/86854de.gif)
![](/icons/86854dou2.gif)
在国内技术社区JavaEye上
![](/icons/86854dou.gif)
也有许多有关maven
![](/icons/86854de.gif)
争论 :
daquan198163 —— Maven N宗罪:在公司内开发项目时
![](/icons/86854dou.gif)
类库定下来后
![](/icons/86854dou.gif)
为了稳定基本也不会升级了
![](/icons/86854dou.gif)
所以它
![](/icons/86854de.gif)
最大优势体现不出来
![](/icons/86854dou.gif)
需要搭建私服
![](/icons/86854dou.gif)
简直没事找事儿插件比Ant少
![](/icons/86854dou.gif)
学习成本高
![](/icons/86854dou.gif)
强制用它
![](/icons/86854de.gif)
目录结构
![](/icons/86854dou.gif)
和IDE集成不好
![](/icons/86854dou.gif)
配置麻烦
robbin —— 所以我从不用Maven
![](/icons/86854dou.gif)
最多用点ant
Readonly —— 共享类库可以用IDE reference project解决
![](/icons/86854dou.gif)
公司内部项目给常用
![](/icons/86854de.gif)
lib建立
![](/icons/86854yi.gif)
个project
![](/icons/86854dou.gif)
从CVS上check out
![](/icons/86854dou.gif)
其他工程项目都依赖这个project就可以了
![](/icons/86854dou.gif)
ant build也直接引用这个项目
![](/icons/86854de.gif)
jar就可以
![](/icons/86854dou.gif)
项目体积照样只有几百K
![](/icons/86854dou2.gif)
ray_linn —— Maven非常难搞
![](/icons/86854dou.gif)
俺承接了
![](/icons/86854yi.gif)
个老外
![](/icons/86854de.gif)
项目后期
![](/icons/86854dou.gif)
结果就是它~就是它~MAVEN
![](/icons/86854dou.gif)
不断
![](/icons/86854de.gif)
报告某个库找不道(明明在服务器上)
![](/icons/86854dou.gif)
最后老外和俺都失去调试 MAVEN
![](/icons/86854de.gif)
兴趣
![](/icons/86854dou.gif)
大家和平分手
![](/icons/86854dou2.gif)
Remote team用Maven
![](/icons/86854dou.gif)
万
![](/icons/86854yi.gif)
对方是在俄罗斯或者南美洲就死掉了
![](/icons/86854dou2.gif)
靠
![](/icons/86854de.gif)
![](/icons/86854dou.gif)
为什么不能是visualstudio
![](/icons/86854de.gif)
project file?
alexma —— 我们是 Maven 和 Ant 配合用
![](/icons/86854dou.gif)
主要用 Maven
![](/icons/86854de.gif)
依赖管理
![](/icons/86854dou.gif)
其他 build 过程全部用 ant 完成
![](/icons/86854dou2.gif)
就我个人
![](/icons/86854de.gif)
使用经验
![](/icons/86854dou.gif)
Maven依赖管理还是挺好用
![](/icons/86854de.gif)
![](/icons/86854dou2.gif)
dlee —— 对比
![](/icons/86854yi.gif)
下:Maven跟Ant
![](/icons/86854de.gif)
关系
![](/icons/86854dou.gif)
SVN跟CVS
![](/icons/86854de.gif)
关系
![](/icons/86854dou.gif)
可以下结论说
![](/icons/86854dou.gif)
Maven是个失败者
![](/icons/86854dou2.gif)
Maven确实是让人讨厌
![](/icons/86854de.gif)
![](/icons/86854yi.gif)
个东西
![](/icons/86854dou.gif)
笨重、学习成本 高、完全技术化
![](/icons/86854de.gif)
研究方式
![](/icons/86854dou2.gif)
自称是
![](/icons/86854yi.gif)
个优秀
![](/icons/86854de.gif)
项目管理(project management)工具
![](/icons/86854dou.gif)
但是除了极度狂热
![](/icons/86854de.gif)
技术Fans
![](/icons/86854dou.gif)
估计没有人愿意使用它来做项目管理(project management)
![](/icons/86854dou2.gif)
Ant
![](/icons/86854de.gif)
XML脚本很多 时候做事情都没有bash+sed+find等Unix工具用起来快捷
![](/icons/86854dou2.gif)
我们以前做
![](/icons/86854de.gif)
自动化安装脚本全部使用bash
![](/icons/86854dou2.gif)
bash和这些工具在Windows上也可以用
![](/icons/86854dou2.gif)
M$直到bash诞生将近20年的后(bash
![](/icons/86854de.gif)
祖先Bourne Shell诞生30多年的后)才捣鼓出来了
![](/icons/86854yi.gif)
个较为像样
![](/icons/86854de.gif)
PowerShell
![](/icons/86854dou2.gif)
jasongreen —— 多么好
![](/icons/86854de.gif)
依赖管理啊
![](/icons/86854dou.gif)
我甚至把javascript也打到jar包里
![](/icons/86854dou.gif)
用maven来管理
![](/icons/86854dou.gif)
真是太方便了
![](/icons/86854dou2.gif)
当然
![](/icons/86854dou.gif)
maven
![](/icons/86854de.gif)
插件是少了点
![](/icons/86854dou2.gif)
不过这么好
![](/icons/86854de.gif)
东西
![](/icons/86854dou.gif)
插件自然会慢慢多起来
![](/icons/86854dou2.gif)
dengyin2000 —— 好用
![](/icons/86854dou2.gif)
用它
![](/icons/86854de.gif)
eclipse wtp插件
![](/icons/86854dou2.gif)
koalant —— mvn idea:idea , mvn eclipse:eclipse 可以生成对应 ide
![](/icons/86854de.gif)
工程文件, 尤其是在
![](/icons/86854int.gif)
ellij 中,通过内置
![](/icons/86854de.gif)
maven 插件,直接 debug Jetty:run , 连 tomcat 都不用了.
你如何看待Maven?
延伸阅读
最新评论