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包放在私服上供公司內部使用。