SSM框架实战系列之二_Maven之一
Maven是一个项目管理工具,它的主要作用有两个,一个是管理jar文件,另一个是自动构建。
一、Maven的作用
1. 管理jar文件
以前做项目需要引入各种框架时,通常都是把用到的jar文件拷贝到WEB-INF\lib目录下,例如在用SSH框架做开发时,lib目录下有这么多jar文件:
如果用到其它小框架,jar文件还会更多。
这样做的问题很多:
(1). 如果一个公司在做多个类似项目,就需要将jar文件拷来拷去;
(2). 如果一个框架需要进行版本升级,需要将该框架的jar文件全部替换掉,而一些jar文件会依赖于另外的jar文件,所以很难判断要替换掉哪些文件;
Maven用于管理jar文件,可以带来如下好处:
(1). 每个项目只需维护一份jar文件清单,所有的jar文件都可以在互联网上的一个主站点上找到;
(2). jar文件清单中只需说明用到某个框架,然后该框架依赖的jar文件会自动查找,即jar文件可以分级管理;
(3). 升级框架版本只需修改jar文件清单即可;
2. 自动构建
Maven可以将项目自动编译,打包,并部署到Web服务器上,很自动化。
二、Maven的原理
每个Maven项目都维护一份jar文件清单,一般命名为pom.xml。POM即Project Object Model(项目对象模型)。
在此文件清单中,每个jar文件清单项称为一个依赖(dependency)。
每个依赖需要声明三个主要信息:
(1) groupId:软件提供商的机构名称,通常是其域名的倒写,如:org.springframework;
(2) artifactId:构件名称,例如:spring-core;
(3) version:版本号,例如:4.2.6.RELEASE;
你可以在这个网站上查询依赖的声明信息:http://mvnrepository.com/。
1. 中央仓库
互联网上有一个Maven主站点,此站点上维护了世界上绝大多数知名软件提供商的jar文件(当然如果软件商太不知名,也可能不会被Maven收录)。
中央仓库通常的位置是:http://repo1.maven.org/maven2/。
2. 本地仓库
当Eclipse第一次加载Maven项目时,会根据Maven项目的pom.xml文件中的描述,去中央仓库下载清单中的jar文件,放在本地仓库(例如D:\maven_repo中)。
所以第一次加载Maven项目会很慢,因为需要联网将清单中的jar文件全部下载到本地仓库。
以后再新建Maven项目时,会先在本地仓库中查找是否有所需的jar文件,没有时再去中央仓库下载jar文件,放在本地仓库。
本地仓库相当于中央仓库的一个子集。
3. 私服
软件开发公司可以创建一个私服,作为中央仓库的副本,主要作用是减少公司对互联网的依赖;同时可以把公司自己开发的jar包放在私服上供公司内部使用。