为什么使用Maven?

  前言:我学的第一个项目构建工具是ANT,但是在项目开发中并没有被使用,那时呆的公司完全作坊型的,直接用MyEclipse打包的。后来在华为做项目的时候里面有一整套CI平台,我没接触过里面的ANT脚本,直到在支付宝做的时候接触到ANTX,那是第一次感受到构建之美。看过网上很多文章都是copy的,我很想站在新手基础上说说为什么要使用Maven。

 

1.我现在使用MyEclipse工具,她帮我编译,打包,自动部署一直很方便,而且就这样用了几年了,难得这还不够吗?

   首先我想说的是MyEclipse是收费的。不是装B,绝对不是装B,当你呆的公司性质不同的话对知识产权是很注重的。像我现在呆的公司如果发现使用未授权的软件是直接罚钱的。我推荐使用Eclipse NetBeans这些免费好用的。

   另外我个人观点是,如果你觉得目前这种方式在团队开发、实施都一直很顺利的话是完全不用使用Maven的,满足了你实际用到的就行,就好比你做个登录程序,用jsp足够了,何必用ssh、ejb之类的呢。

 

2. 我想听听使用Maven有什么实际性的好处,不要说什么新技术、高端之类的废话!

    这个问题也很实际,我也这样想过的,我说说我在实际开发中很常见的现象

    a) 项目代码过多后在eclipse里面屏幕都装不下了。

          mvn里面的多模块开发很nice的,如果是前端的话直接拉action那层的代码就行了,dao service都不用拉的.

    b) PM经常过来要你部署下看看效果

          用了mvn后PM只需要在页面上点一下就可以部署了

    c) 很多开源工具包的源码看不了,老要在eclipse下关联下

          用了mvn后自动对应~

    d) 代码过多后用eclipse部署都有点慢了

         用了mvn后都把模块打成jar了,部署速度快多了。如果不理解的话打个比方:如果你把spring的源码放到工程里面部署 和 直接使用spring的jar部署,看看哪个速度快。

    e) 我想看看测试用例一共有多少个,成功多少,失败多少?

         用了mvn后直接生成报告,而且还有语法高亮显示。

    f) 我和同事加入jar包,有的是log4j.jar,有的是struts-croe-2.1,每个人加的jar规范都不用(注意版本-2.1)

         用了mvn后直接在仓库上找了,配合nexus直接搜索。

    g) 开发过程中一些配置文件和测试、生产环境的都不同,每次发版本都要人工修改

         用了mvn后不用管,配一次就行了,以后她自动修改

    h) 每次发版本后测试人员都要刷sql脚本,部署,好麻烦,难得没简单的办法吗?

         和b)问题类似,再次强调下,mvn她可以一个命令自动创建数据库,自动从SVN上下载代码,自动编译、测试、打包、部署到tomcat里

 

3. 我也知道Maven是靠命令的,但是这样开发不会很慢吗,比如我在开发阶段eclipse里面自动部署到tomcat,Maven能做到吗,难得我还需要用命令部署啊,那不是慢死了

  这个问题也是我开始使用Maven最郁闷的地方了,其实不然,Maven在开发阶段比传统的快多了, Maven可以内嵌一个Jetty容器的,有个很炫的功能,可以在Main方法里面直接启动她,就像和写普通j2se程序一样的调试 并且当你的JSP改动后她也是自动更新 的(class文件不行),怎么样,这样的话岂不是最快了,并且分模块开发后直接导入jar后启动更快。

 

4. 一般学习Maven需要多长时间?

   我带的实习生半天可以生成一个项目,加入JAR包并且测试、打包,大致了解她的生命周期就行了,只需要这样Maven你就会了80%,我个人感觉真的不难,因为资料多,而且不用写一行代码。

 

 

5.Maven有什么缺点?

   个人感觉唯一缺点是pom.xml文件过长了,gradle采用groovy脚本代码精简了很多

 

你可能感兴趣的:(maven)