我的Maven之旅(1)-为什么使用maven

我对maven的比较深刻的认识也是在进入阿里之后,之前只是比较粗浅的了解。在阿里的工作模式,严格的项目流程让我真正意识到了maven在项目管理中所起到的如此重要的作用。如果你的项目管理流程比较简单,如果你不需要协作开发,那么你可能不能真正感受到maven的魅力。

 

在讲为什么使用maven之前我想说一下,antx,很多人知道ant,其实antx是阿里人自己搞的一套基于ant扩展的在某些方面类似于mavnen的工具,我们甚至有eclipse的antx插件,可想而知antx在阿里的项目管理中的重要地位。它有很多优秀之处:

1. 可以比较好的支持第二方库

2. 支持项目之间的依赖和继承

3. antx可以用jelly来写插件

4. car包的支持,这里简单介绍下car包:

car是war包的一种中间格式,在打包的时候包含vm页面,webx.xml,classes等资源,但是没有包含
WEB-INF/lib,一个war包能包含多个car 包,在war包打包的时候,能够把web工程依赖的car中的jar
包,包括传递依赖的jar包,一起合并到WEB-INF/lib下

5. auto config: auto-config.xml配置项目中需要被替换的资源

 

那我们为什么还需要引入maven呢?

 

先说一下Antx在存在哪些问题:

1. Antx第三方库的管理比较复杂,如果某个项目需要一个新的jar包或者新版本的jar包,则需要走一个严格申请流程,并且需要自己提交相关的jar包

2. Antx对jar包的版本控制,changelist等没有工具上的支持,导致很多项目都是1.0-SNAPSHOT从头用到尾,导致包版本比较不好控制。

3. Antx对SCM打包部署的支持不是很强。

4. Antx在于IDE的兼容性上存在问题,为了让eclipse支持antx,我们需要单独写一个antx插件来让eclipse支持antx,对于其他的一些比较好的IDE比如Intellij IDEA,是不支持antx的。

5. 现在IDE很多都有一键式DEBUG的功能,包括集成对应用服务器的支持,antx在这方面存在不足。

 

Maven能解决这些问题么,还有更好的优势么, 答案是YES

1. Maven的库是由开源组织维护,不需要我们再花精力去管第三方库,即使自己维护,也比较方便。

2. Maven对jar包的版本管理有工具上的支持,比如将Release版本和Snapshot版本区分开,有利于SCM管理。

3. Maven是标准,用过的人多,不需要额外培训。

4. Maven的plugin比较多,可以有更多功能,Maven现有体系比较开放,采用的技术相对比较通用和成熟,plugin的机制也可以便于我们扩展更多功能。

5. Maven的库下载是即用即下,不需要实现全部down下来。Maven的插件也是自动升级,可以方便的
我们扩展新功能。

6. 可以很方便的与eclipse, IDEA这样的主流的IDE集成

7. 仓库管理器:它的出现有两个目的:首先它的角色是一个高度可配置的介于你的组织与公开Maven仓库之间的代理,其次它为你的组织提供了一个可部署你组织内部生成的构件(第二方库)的地方。

8. 版本管理功能,这里的版本管理不是指第三方库的版本管理,而是项目的版本管理

9. 站点功能:它的出现让我们可以对项目的状态一目了然,可以自动的把项目的状态和各种报表以站点的形式发布到内部网或者外部网,可以随时随地查看项目状态。有很多中报表可以选择,包括,doc生成,代码规范的检查,自动bug检查,单元测试报表,单元测试的代码覆盖率报表

 

在后面的文章我会一一描述是如何在项目中使用和配置maven的各种实用的功能。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
1.[今日课程内容总览] Maven--***** 介绍 优点 用maven创建一个项目, 用maven创建一个ssm项目,每一层的代码分开,把一个项目拆解成多个项目 2.[今日包含笔记] maven介绍: Eclise: 缺点: Jar包: 版本管理,解决jar包冲突:删除老的jar包,保留新的jar包 不同的项目,jar包要复制一份;Users Library 羡慕yum的好处,安装软件,自动下载,自动验证,自动安装,自动测试;镜像网站 Jar包的依赖: 致命的缺点:现象: 每一个项目都有前台(广大网民)和后台(管理员看的),后台的功能远远的大于>前台的功能;迭代升级;每次升级都要重启tomcat;将tomcat做很多个备份(10个),为了nginx转发;前台:访问比较大,管理员访问量比较小; 问题: 每次升级,10个tomcat都升级一次 后台的升级频繁要比前台频繁;升级10次,9次改的是后台的代码,只有一次是前台的代码 解决方案: 是将前台(广大网民看的页面)的代码和后台(管理员)的代码要分开,将原来的一个项目分别放到两个web项目;一个web项目一个tomcat;好处:更新的时候如果更新后台(管理员),只需要重启后台的tomcat(服务); 折成两个项目以后的缺点:Service以下的代码重复; 将Service层以下的代码放到一个新创建的java项目中,在部署的时候将Service(java项目)打成一个jar包,分别放到两个web服务中;编译的时候让web项目依赖与Service(java项目)_source folder;配置麻烦,项目与项目之间的依赖头脑得相当清晰 这个缺点Maven解决了; 请听今天的内容 拆分前:图一 拆分后是图二 3. 介绍 官网:http://maven.apache.org/download.cgi 目录介绍: Bin:二进制文件 Boot:引导,启动 Conf:配置文件 Lib:jar包 README.txt:读我 3.1.修改配置文件的内容 路径:%MAVEN_HOME%\conf\settings.xml 配置文件代码: d:/repo alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central 注意: 千万不要将文档中的setting的内容全部替换到maven中的内容,要对比着修改,保留原来的; 只修改本地仓库,和下载镜像(源) 3.2.Eclipse Maven的配置 每打开一个新的工作空间,要配置一下Maven,然后再写代码 3.3.创建Maven项目 右击创建一个maven project Packing:有三种: Jar:java项目, War:web项目 Pom:文件夹,jar和war文件,mavenProject:一个项目,可以放jar和war包,通过pom,一般新创建的maven Project是POM 3.4.创建一个Maven Model 最外面的项目是MavenProject,其它的全部是Maven Model 3.4.1.创建JAR 目录介绍: Mvn-jar |-->Src:源码:java代码 |-->|-->main:代码:除测试以外的代码:junit |-->|-->main|-->java:代码 |-->|-->main|--
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值