Maven基本命令
-v:查詢Maven版本
本命令用於檢查maven是否安裝成功。
Maven安裝完成之後,在命令行輸入mvn -v,若出現maven信息,則說明安裝成功。
compile:編譯
將java源文件編譯成class文件
test:測試項目
執行test目錄下的測試用例
package:打包
將項目打成jar包
clean:刪除target文件夾
install:安裝
將當前項目放到Maven的本地倉庫中。供其他項目使用
什麼是Maven倉庫?
Maven倉庫用來存放Maven管理的所有Jar包。分爲:本地倉庫 和 中央倉庫。
本地倉庫
Maven本地的Jar包倉庫。
中央倉庫
Maven官方提供的遠程倉庫。
當項目編譯時,Maven首先從本地倉庫中尋找項目所需的Jar包,若本地倉庫沒有,再到Maven的中央倉庫下載所需Jar包。
什麼是“座標”?
在Maven中,座標是Jar包的唯一標識,Maven通過座標在倉庫中找到項目所需的Jar包。
如下代碼中,groupId和artifactId構成了一個Jar包的座標。
groupId:所需Jar包的項目名
artifactId:所需Jar包的模塊名
version:所需Jar包的版本號
傳遞依賴 與 排除依賴
傳遞依賴:如果我們的項目引用了一個Jar包,而該Jar包又引用了其他Jar包,那麼在默認情況下項目編譯時,Maven會把直接引用和簡潔引用的Jar包都下載到本地。
排除依賴:如果我們只想下載直接引用的Jar包,那麼需要在pom.xml中做如下配置:(將需要排除的Jar包的座標寫在中)
ch.qos.logback
logback-classic
依賴衝突
若項目中多個Jar同時引用了相同的Jar時,會產生依賴衝突,但Maven採用了兩種避免衝突的策略,因此在Maven中是不存在依賴衝突的。
短路優先
本項目——>A.jar——>B.jar——>X.jar
本項目——>C.jar——>X.jar
若本項目引用了A.jar,A.jar又引用了B.jar,B.jar又引用了X.jar,並且C.jar也引用了X.jar。
在此時,Maven只會引用引用路徑最短的Jar。
聲明優先
若引用路徑長度相同時,在pom.xml中誰先被聲明,就使用誰。
聚合
什麼是聚合?
將多個項目同時運行就稱爲聚合。
如何實現聚合?
只需在pom中作如下配置即可實現聚合:
<modules>
<module>../模塊1</module>
<module>../模塊2</module>
<module>../模塊3</module>
</modules>
繼承
什麼是繼承?
在聚合多個項目時,如果這些被聚合的項目中需要引入相同的Jar,那麼可以將這些Jar寫入父pom中,各個子項目繼承該pom即可。
如何實現繼承?
父pom配置:將需要繼承的Jar包的座標放入標籤即可。
org.apache.shiro
shiro-spring
1.2.2
子pom配置:
父pom所在項目的groupId
父pom所在項目的artifactId
父pom所在項目的版本號