1.pom.xml文件介紹.
1.1project標簽和modelVersion標簽介紹.
-
pom.xml文件是maven的核心文件,POM(Project Object Model,項目對象模型)定義了項目的基本信息,用于描述如何構建,聲明項目依賴;;
1.2依賴坐標介紹.
-
依賴的坐標主要是由:groupid、artifiactId、version三部分組成,簡稱:"gav",坐標概念來自數學;
-
坐標作用:確定資源,是資源的唯一標識。 在maven中,每個資源都是坐標,且坐標值是唯一的。如下這個坐標:
-
dependencyManagement:依賴管理器;
-
dependencies:依賴列表;
-
groupId:組織名稱。 公司,團體或者單位的標識。 這個值常使用的公司域名的反寫;
-
artifactId:項目名稱,本項目的唯一ID,一個 groupId下面可以包含多個項目,就是靠 artifactId來區分的;
-
version:版本,項目的版本號,使用三位數字組成。主版本號.次版本號.小版本號,如:.2.5。注意:版本號中有"-SNAPSHOT",表示快照版,不是穩定的版本;而 "RELEASE" 則是穩定版/發行版的意思。????
-
scope:控制 dependency 元素的使用范圍。通俗的講,就是控制 Jar 包在哪些范圍被加載和使用。常用的值有如下:
-
compile(默認):含義:compile 是默認值,如果沒有指定 scope 值,該元素的默認值為 compile。被依賴項目需要參與到當前項目的編譯,測試,打包,運行等階段,打包的時候通常會包含被依賴項目。
-
provided:被依賴項目理論上可以參與編譯、測試、運行等階段,相當于compile,但是再打包階段做了exclude(排除)的動作。適用場景:例如, 如果我們在開發一個web 應用,在編譯時我們需要依賴 servlet-api.jar,但是在運行時我們不需要該 jar 包,因為這個 jar 包已由應用服務器提供,此時我們需要使用 provided 進行范圍修飾。
-
runtime:表示被依賴項目無需參與項目的編譯,但是會參與到項目的測試和運行。與compile相比,被依賴項目無需參與項目的編譯。適用場景:例如,在編譯的時候我們不需要 JDBC API 的 jar 包,而在運行的時候我們才需要 JDBC 驅動包。
-
test:表示被依賴項目僅僅參與測試相關的工作,包括測試代碼的編譯,執行。適用場景:例如,Junit 測試。
-
system:system 元素與 provided 元素類似,但是被依賴項不會從 maven 倉庫中查找,而是從本地系統中獲取,systemPath 元素用于制定本地系統中 jar 文件的路徑。例如:
-
-
-
import:它只使用在<dependencyManagement>中,表示從其它的pom中導入dependency的配置。適用場景:模塊的繼承關系中。
-
1.3項目打包參數配置.
-
Maven項目打包的打包方式及生成的包名由如下內容決定:
-
packing標簽里面指定了打包的方式,有 jar、war、ear、pom等,默認的是 jar;
-
打包方式不同,生成的包名不同:
-
如果是通過 package命令打包,那么在 target里面生成的包名是:sping.war;
-
如果是通過 install命令打包,會在 target里面生成一個包,包名是:sping.war,同時還會在本地倉庫的位置生成一個包,包名是:sping-1.0-SNAPSHOT.war。
-
-
打包后的jar包名字生成規范:artifactId.packaging,如當前的配置,項目打包后生成的包名就是:spring.war。
1.4插件坐標介紹.
-
pluginManagement:插件管理器;
-
plugins:插件列表;
-
plugin:引入插件的依賴,一對<plugin>標簽對應一個插件。
2.Maven常用操作介紹.
2.1Maven install操作.
-
Maven install:對項目進行編譯打包,并將項目轉換成為 maven依賴存放在本地 maven倉庫中。同時還會在 target目錄和本地倉庫的目錄里面生成 war包,如:
-
在 target目錄里面的包名是:項目名.war,如:sping.war;也會存放在項目的本地工作空間的 taget目錄里面;
-
在本地倉庫里面的包名是:項目名-版本號.war,如:spring-1.0-SNAPSHOT.war。在本地倉庫的路徑:E:\repository\com\wuicy\spring\1.0-SNAPSHOT;
-
-
同時還會在項目的 targer目錄里面和并將項目打包發布到本地工作空間的項目文件的 target目錄里,如:
-
執行該命令的時候可以先執行clean操作清除原先打包的項目,再執行install操作。
2.2Maven test操作.
-
Maven test:對項目進行編譯并執行test目錄里面的測試代碼。
2.3Maven clean操作.
-
Maven clean:清理 target目錄。在進行真正的構建項目之前進行一些清理工作,移除所有上一次構建生成的文件。執行該命令會刪除項目的target目錄里面的文件。
2.4Maven package操作.
-
注意和 Maven install命令的區別;
-
Maven package:將項目打包,包名是:項目名.war,該操作只會將項目打包存放到本地工作空間的位置,不會在本地倉庫粗放。如:
2.5Maven Reimport操作.
-
該操作是刷新更新 Maven項目,如果有依賴沒下載好,就可以使用該命令刷新 Maven項目,重新下載依賴,不過該命令需要先下載 Maven Helper插件才有,項目名右鍵。如: