0、前言
- 擅長管理大型專案
- 自動管理你需要的jar包
自動進行下載我們需要的jar包。
1、maven的概念
- Maven是專案進行模型抽象,充分運用物件導向的思想,Maven可以通過一小段描述資訊來管理專案的構建,報告和文件的
軟體專案管理工具
。Maven 除了以程式構建能力為特色之外,還提供高階專案管理工具。由於 Maven 的預設構建規則有較高的可重用性,所以常常用兩三行 Maven 構建指令碼就可以構建簡單的專案。 - 說白了: Maven是由Apache開發的一個工具用來管理java專案, 依賴管理(jar包的管理),專案構建。
2、Maven的作用
- 依賴管理: maven
對專案的第三方構件(jar包)進行統一管理
。向工程中加入jar包不要手工從其它地方拷貝,通過maven定義jar包的座標,自動從maven倉庫中去下載到工程中。 - 專案構建: maven提供一套對專案生命週期管理的標準,開發人員、和測試人員統一使用maven進行專案構建。專案生命週期管理:
編譯、測試、打包、部署、執行。
- maven
對工程分模組構建
,提高開發效率。
3、Maven的概念模型
- 專案物件模型(Project Object Model),POM物件模型,每個maven剛工程中都有一個
pom.xml
檔案,定義工程所依賴的jar包、本工程的座標、打包的方式。
- 依賴管理系統(基礎核心),maven通過座標對專案工程所依賴的jar包統一規範管理。
- maven定義一套
專案生命週期
。清理、初始化、編譯、測測試、報告、打包、部署、站點生成。
- 一組標準集合,maven工程有自己標準的工程目錄結構、定義座標有標準。
- maven管理專案生命週期過程都是
基於外掛完成
的,例如:開發中使用的tomcat外掛。
4、Maven的倉庫
4.1 Maven的倉庫
倉庫名稱 | 作用 |
---|
本地倉庫 | 相當於快取 ,工程第一次會從遠端倉庫(網際網路)去下載jar 包,將jar包存在本地倉庫(在程式設計師的電腦上)。第二次不需要從遠端倉庫去下載。先從本地倉庫找,如果找不到才會去遠端倉庫找。 |
中央倉庫 | 就是遠端倉庫 ,倉庫中jar由專業團隊(maven團隊)統一維護。中央倉庫的地址:[https://repo1.maven.org/maven2/] |
遠端倉庫(私服) | 私服是一種特殊的遠端倉庫 ,它是架設在區域網內的倉庫服務,私服代理廣域網上的遠端倉庫,供區域網內的Maven使用者使用。當Maven須要下載構件的時候。它從私服請求,假設私服上不存在該構件,則從外部的遠端倉庫下載,快取在私服上之後,再為Maven的下載請求提供服務。 |
4.2 倉庫中存放的內容
- Maven自身執行所需要的外掛
- 第三方框架(spring/mybatis/springmvc)和工具類的jar包
- 我們自己開發的maven專案安裝後的jar包
5、maven的座標
- Maven的一個核心的作用就是管理專案的依賴,引入我們所需的各種jar包等。在Maven中,不論什麼一個依賴、外掛或者專案構建的輸出, 都能夠稱之為構件。
- 為了能自動化的解析任何一個Java構件. Maven必須將這些Jar包或者其他資源進行唯一標識,這是管理專案的依賴的基礎,也就是我們要說的座標。
- 包括我們自己開發的專案,也是要通過座標進行唯一標識的,這樣才能才其它專案中進行依賴引用。座標的定義元素如下:
groupId
:專案組織唯一的識別符號
,實際對應JAVA的包的結構
- (一般寫公司的組織名稱 例如:com.han,com.alibaba)
artifactId
: 專案的名稱
version
:定義專案的當前版本
- 例如:要引入druid的jar包,只需要在pom.xml配置檔案中配置引入druid的座標即可:
<!--druid連線池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>