Maven工具的一些必備知識點


本文記錄Maven相關的知識點。

一、maven安裝

1.下載
官方下載地址:http://maven.apache.org/download.cgi

2.安裝
直接解壓後放在磁盤目錄中即可;

3.配置環境變量
在這裏插入圖片描述
添加path:
在這裏插入圖片描述

二、Maven Scope

scope定義了類包在項目的使用階段。項目階段包括: 編譯,運行,測試和發佈。

分類說明:

compile
默認scope爲compile,表示爲當前依賴參與項目的編譯、測試和運行階段,屬於強依賴。打包之時,會打到包裏去。

  • 對主程序是否有效:有效
  • 對測試程序是否有效:有效
  • 是否參與打包:參與

test
該依賴僅僅參與測試相關的內容,包括測試用例的編譯和執行,比如定性的Junit。

  • 對主程序是否有效:無效,主程序看不到test依賴內容;
  • 對測試程序是否有效:有效
  • 是否參與打包:不參與

runtime
依賴僅參與運行週期中的使用。一般這種類庫都是接口與實現相分離的類庫,比如JDBC類庫,在編譯之時僅依賴相關的接口,在具體的運行之時,才需要具體的mysql、oracle等等數據的驅動程序。
此類的驅動都是爲runtime的類庫。

provided
該依賴在打包過程中,不需要打進去,這個由運行的環境來提供,比如tomcat或者基礎類庫等等;事實上,該依賴可以參與編譯、測試和運行等週期,與compile等同。區別在於打包階段默認進行了exclude操作

  • 對主程序是否有效:有效
  • 對測試程序是否有效:有效
  • 是否參與打包:不參與

system
使用上與provided相同,不同之處在於該依賴不從maven倉庫中提取,而是從本地文件系統中提取,其會參照systemPath的屬性進行提取依賴。

import
這個是maven2.0.9版本後出的屬性,import只能在dependencyManagement的中使用,能解決maven單繼承問題,import依賴關係實際上並不參與限制依賴關係的傳遞性。

三、常見Maven命令

  • mvn clean :清理項目,運行後,之前target目錄被清除
  • mvn compile :編譯,產生class文件,也就是target目錄
  • mvn clean compile : 清理+編譯
  • mvn clean test : 清理+編譯+執行測試
  • mvn clean package : 清理+編譯+打包
  • mvn clean install : 清理+編譯+打包+放置本地倉庫
  • mvn clean deploy :清理+編譯+打包+放置本倉庫+放置遠程倉庫
  • mvn archetype:generate : 創建項目骨架
  • mvn dependency:list : 查看當前項目的已解析依賴
  • mvn dependency:tree : 查看當前項目的依賴樹
  • mvn dependency:analyze : 自動化分析當前項目的依賴

注意:compile->test->package->install->deploy,在執行後邊命令時,都是默認從compile開始執行一遍。

四、Settings 文件

1.localRepository
在這裏插入圖片描述
修改此項配置,指定自己本地maven倉庫路徑。

2.servers
在這裏插入圖片描述
指定私服認證信息。

3.mirrors
在這裏插入圖片描述
指定私服倉庫鏡像地址。

4.profiles
指定jdk版本等
在這裏插入圖片描述

五、依賴的傳遞性/繼承

1.A依賴B,B依賴C,那麼A也會有C的依賴;

2.非compile作用域的,比如test,不會依賴傳遞;

3.路徑最短者優先原則,A依賴的B,B依賴C,加如B和C都直接依賴了一個common包,但是版本不一樣,根據依賴傳遞性,A會同時依賴兩個版本的common包,但是實際上會優先使用B的common,因爲B的common包,路徑上離A更近。
路徑相同時,先聲明者優先,就是 dependency 標籤在前者,優先。

4.繼承時,父工程打打包方式必須爲pom;

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