Maven依賴管理的概念
傳統的項目工程中,需要將各種Jar包存放在項目中。導致一個項目工程所佔大小增加。如果出現若干個項目工程,則會出現每個項目工程中都存有各自所需的Jar包,從而導致不必要的空間佔用。因此使用Maven,由Maven開發的項目工程中,並不將Jar包存放在項目中,而是存放在Jar包倉庫中供若干個項目工程使用,而項目工程只需要提供一個Jar包座標即可。因此增加了Jar包可重用,以及減小了項目工程所佔空間大小。依賴管理就是Maven工程對Jar包的管理。
項目的一鍵構建
如果直接通過Tomcat部署運行,則需要先將項目工程導包放進Tomcat目錄下,然後才能部署運行。若使用Maven,則只需要一個命令就可以讓其使用Tomcat部署運行,並且Maven中包含了Tomcat插件。
倉庫的種類和彼此關係
Maven工程中不存放Jar包,而是對應的Jar包座標。Jar包都存放在倉庫中,倉庫分爲以下三類:
1>本地倉庫:Maven會根據配置文件中的默認倉庫來尋找對應的Jar包。
2>遠程倉庫(私服):公司內部使用的倉庫,共同開發項目時直接通過局域網使用內部倉庫。
3>中央倉庫:在聯網的情況下,如果在本地倉庫或者遠程倉庫不能獲取所需要的Jar包時就會去中央倉庫尋找,該倉庫中存放了幾乎所有開源的Jar包。
因此這三者的關係是,啓動一個Maven工程,然後根據Jar包座標在本地倉庫中尋找Jar包,如果不存在,則在遠程倉庫中尋找,若尋找到,則從遠程倉庫中將Jar包上傳到本地倉庫中(本地倉庫也可以向遠程倉庫上傳Jar包),若遠程倉庫也不能獲取所需Jar包,則在聯網的情況下,去中央倉庫尋找所需Jar包。
Maven標準目錄結構
1> src/main/java目錄:存放項目核心代碼部分
2> src/main/resources目錄:配置文件部分
3> src/test/java目錄:測試代碼部分
4> src/test/resources目錄: 測試配置文件部分
5> src/main/webapp目錄: 頁面資源,js,css,圖片等
Maven常用命令
1>mvn clean:將編譯好的項目信息刪除
2>mvn compile:將項目編譯並將src中的文件編譯後的文件放在target目錄下
3>mvn test:將src 和 test目錄下的文件都進行編譯並放在target目錄下
4>mvn package:將項目打包
5>mvn install:將項目src和test下的文件編譯,打包,並且將當前的項目安裝到本地倉庫中
Maven生命週期
默認生命週期:編譯(Compile)->測試(test)->打包(package)->安裝(install)->發佈(deploy)
清理生命週期: clean(清除項目編譯信息)
站點生命週期:
Maven概念模型圖
依賴管理
項目對象模型(POM):中放置了①項目自身信息②項目運行所依賴的Jar包信息③項目運行環境信息(例如JDK、Tomcat信息)
依賴管理模型(Dependency):存放Jar包座標,具體形式如下:
<!-- Jar標座標基本由公司組織名稱-項目名-版本號組成 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
一鍵構建
Maven項目工程中,一般使用默認生命週期,每一個構建項目的命令都對應了Maven底層的一個插件。
Maven作用域
爲了防止Maven中的一些包和其他例如本地Tomcat中的Jar包發生衝突而導致項目運行失敗,因此使用<scope>
<scope>中指的就是,在測試時使用該依賴的Jar包,而實際在項目運行過程中,使用其他的同名的Jar包