2014/05/07

Why maven



Why maven?
除了写源代,我每天有相当一部分时间花在了编译、运行测试、生成文档、打包和部署等烦琐且不起眼的工作上,是构建
一直在不停地找避免重复的方法。设计的重复、编码的重复、文档的重复,
当然有构建的重复。Maven最大化地消除了构建的重复,抽象了构建生命周期,并且为绝大部分的构建任提供了已实现的插件,我不再需要定义过程,甚至不需要再去实现这程中的一些任
简单的例子是测试,我没必要告Maven测试,更不需要告Maven如何运行测试,只需要遵循Maven写好测试用例,当我运行构建的候,测试便会自运行

个开源的年代里,几乎任何Java用都会借用一些第三方的开源类库类库都可通的方式引入到目中来。随着依的增多,版本不一致、版本冲突、依问题都会接踵而来。手工解决问题是十分枯燥的,幸运的是Maven提供了一个秀的解决方案,它通一个坐准确地定位每一个构件(artifact),也就是通Maven找到任何一个Java类库(如jar文件)。Maven给这类库世界引入了经纬们变得有秩序,于是我可以借助它来有序地管理依松地解决那些繁的依赖问题

只要定位了坐Maven就能帮我,省去了手工劳动
★これみたいな物!
使用脚本建立高度自定的构建系就像买组PC,耗时费力,果也不一定很好。当然,你可以享受从无到有的趣,但恐怕实际项目中无法你那么多时间。使用Maven就像购买品牌PC,省省力,并能得到成熟的构建系能得到来自于Maven社区的大量支持。

MAVEN VS IDE
IDE能大大提高开效率。当前主流的IDEEclipseNetBeans等都提供了大的文本编辑调试甚至重构功能。然使用简单的文本编辑器和命令行也能完成大部分开工作,但很少有人愿意那做。然而,IDE是有其天生缺陷的: 
 IDE大量的手工操作。编译测试、代生成等工作都是相互独立的,很
完成所有工作。手工劳动往往意味着低效,意味着容易出   
目中一所有的IDE配置,每个人都有自己的喜好。也正是由于个原因,一个在机器A上可以成功运行的任,到了机器BIDE中可能就会失 
们应该合理利用IDE,而不是多地依它。于构建这样的任,在IDE中一次次地点是愚蠢的行Maven方面的家,而且主流IDE都集成了Maven


MAVEN VS ANT
MakeAnt也都是程式的,开式地指定每一个目,以及完成所需要行的任针对每一个目,开者都需要重新程,里其实隐含着很大的重复。Maven是声明式的,目构建程和程各个段所需的工作都由插件实现,并且大部分插件都是成的,开者只需要声明目的基本元素,Maven行内置的、完整的构建程。在很大程度上消除了重复。 
Ant是没有依管理的,所以很一段时间Ant都不得不手工管理依是一个令人疼的问题。幸运的是,Ant户现在可以借助Ivy管理依。而Maven,依管理是理所当然的,Maven内置了依管理,更有一个可能有全世界最多Java开源件包的中央仓库Maven须进行任何配置就可以直接享用

Maven真比自己的“范化Ant”大?其他不知道自己只是在重新子,Maven有一大把成的插件,全世界都在用,你自己不用写任何代 什么没有人“我自己写的代最灵活,所以我不用Spring,我自己实现IoC;我不用Hibernate,我自己封装JDBC”