就这么不再怵maven了

   最近在找一些开源web项目素材的时候,才发现不管国内还是国外的开源项目多数都转型成maven构建了。想当年ant构建的时候忍不住学习了ant,现在总不能看着眼馋不会用maven吧,不然那么多的开源项目只是找齐依赖包都可以哭几天了。于是花了一天整了整maven的东东,发现这玩意挺好玩。

   我用的是mac os10.5的黑苹果,所幸maven2.2早就内置了,省得我下载建软链接了。mac下使用maven和linux差不多,repositories的默认路径也是~/.m2/repository。需要做的是在上级目录下建一个settings.xml文件。maven对应eclipse有个叫m2eclipse的插件,虽然最近一直在用的idea8.1内置了maven的支持,不过还是要eclipse也能用才是真的爽。毕竟我为了统一mac和xp下的ide的快捷键整了一个多小时!eclipse安装m2eclipse有一点注意就是要先去eclipse的官网安装AJDT,然后安装m2eclipse才不会报错。到这里的话,只要去下载个maven的权威指南看看maven的一些概念,照着做做例子就应该会用了。

   不过,既然整了,就不在乎再整个源的私服了。目前私服最猛的就是nexus了,这个东东就是一个web程序,内置了小巧的jetty作为web服务器。我是下了1.4放在/usr/local下了(个人习惯),建了个服务链接,懒得每次都要进来启动。值得注意的是在我本机启动的时候,特别是更新远程索引的时候会OutOfMemory。所以这时候去jetty的conf下编辑wrapper.conf,里面有初始化内存的大小和最大占用内存两项设置,默认是注释的,我按照自己的情况设置并都启用之后不会爆掉了。私服启动默认是有三个proxy的源的,这三个的作用是如果私服本身没有找到指定的project(通常是jar文件),它会跑去这三个源去找。默认远程索引是关闭的,全部开启刷新index过几分钟就能下载完毕了。有了这些索引,就可以对付大多数的jar了,当然我又加了个jboss的,嘿嘿。

   要让maven不直接去中心源去找依赖项目,要在settings.xml中加入私服的mirror覆盖默认的。这样使用maven时,它会去私服找依赖,私服本身没有就会偷偷的去proxy找。当然maven个傻鸟是不知道这个过程的,它才不管哪儿弄的,它只管链接私服找到自动下载到本地的库里。这些基础的环境都ok之后,下面就可以享受maven带来的方便了。

   我是要看springside3的mini-web,springside的作者很可爱啊,提供了一堆的bat自动执行文件。可惜我是mac,打开一看,我靠,就是不停的call maven命令啊。最初我是试试eclipse的插件,所以选择import进maven项目,但是在默认install的生命周期内少了core的依赖。只好终端进入modules的core执行mvn install生成的springside3-core-3.2.0.jar会安装到本地库。此时m2eclispe再执行mvn package,mini-web的war等就顺利的出现了,那些依赖库也会包含在里面,剩下的就是想怎么整怎么整。springside3的作者们定义了一个parent的pom.xml,这些examples都是共用这个pom定义的插件,全局设置等等,这点和ant挺像。
 
   maven的功能还是很强大的,可以把项目管理流水线的形式约束。减少开发和测试的人工差错和提升效率,当然这是对那些pm而言的,对我来说,使用没有障碍就成了。另外,坛子里有个maven牛人啊,都在出书了,权威指南也是他翻译的,表示感谢。

猜你喜欢

转载自yanxuxin.iteye.com/blog/552434
今日推荐