maven記錄二

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包的座標。

ch.qos.logback logback-classic 1.1.1

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所在項目的版本號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章