關於maven
maven是項目對象模型(pom),可以通過一小段描述信息來管理項目的構建,依賴,報告和文檔的項目管理工具軟件。有了maven創建,生成、打包、管理項目結構變得極其方便。
maven的概念與配置
庫
maven中所有的運行過程使用的都是資源,命令插件,構建插件,依賴jar包等都是maven管理的一批文件和jar包。這些子軟存放的位置–庫,maven有三種庫可以使用
中央庫
管理維護了大批公共資源,有maven社區團隊維護,maven客戶端只能用,沒有權限加或者改(Spring,springmvc,Apache等jar)
本地庫
maven客戶端使用遠程庫或者中央庫時,根據本地需求下載資源資源內容,爲了供本機後續使用,將會對下載的資源維護到本地庫的文件夾中。
遠程庫(私服)
除了中央庫和本地庫,不同的公司還可以自行搭建服務器,完成自定義的資源的控制,放到私服中,供給公司內部使用(通過權控制,放置外界獲取)
配置本地庫ali_repo
需要修改maven根目錄conf文件夾下的settting.xml
修改標籤localRepository,指定到本地庫資源ali_repo
xx://ali_repo
資源依賴
依賴定位
對依賴的資源,例如 jar spring-beans , 什麼是一小段描述信息,
每一個,每一種資源,都是有基本的三個標籤來定義座標的。
groupId 域名倒寫 例如 a.b.org。springframework,來表示一個實際的大項目,
artifactid 一個大項目中某個模塊的項目名稱,例如
a-parent 等
version 表示資源的版本
dependency 表示相關依賴
生命週期
maven工程的從無到有到銷燬的的整個過程,稱爲maven的聲明週期
初始創建,創建一個普通的java項目
maven調用本地庫的資源執行,命令創建一個maven工程
選擇使用哪種骨架archetype
所謂的骨架,就是maven工具生成的工程結構,根據選擇,創建不同的工程結構,通常常用的是 quickstart標準的java工程,wabapp標準的maven的web工程
項目清空
(通常用eclipse進行開發,以下作爲了解)
mvn clean
調用maven命令的插件clean,可以將target目錄下的所有輸出內容清空,防止上次執行命令在target中生成的舊文件影響更新後的內容。
項目的編譯
mvn clean compile
測試代碼運行 mvn test
項目打包
mvn clean package
maven項目使用打包插件,將項目根據pom中指定的類型。
項目安裝 maven install
項目的發佈
分模塊開發中,可以使用遠程私服保存開發的各種庫資源,不同的模塊減少代碼的重複編寫,可以通過連接公司的遠程私服獲取其他團隊的代碼 ar包資源。
mvn depoly
maven插件的簡述
pom文件除了管理當前的項目基本信息,還可以通過引入插件解決項目生命週期中各種需求,例如 可以通過引入引入main插件,執行一個jar包。
eclipse的maven整合
調整eclipse使用環境即可。
maven的依賴資源
在開發過程中,需要導入各種jar包,都必須在mavedn的pom文件中中管理維護多個 ,
具有很多特性和配置內容。
依賴的傳遞性
傳遞性(springboot簡化依賴)
一個依賴的資源可以在編寫代碼時。依賴其他資源,最終,經過依賴的傳遞性,maven工程可以引入一個dependecny看到多個jar包資源。
依賴的使用範圍
依賴的scope的值:
compile:編譯 ,從編譯開始就要使用該依賴了,運行構建,打包,安裝,發佈都會攜帶這個依賴資源(沒有配置scope時 默認)
test: 測試,只是在測試代碼運行時生效,打包,安裝,部署都不會使用
runtime和 complie類似,只有在編譯時不生效,運行,構建,打包,安裝全部使用,例如 jdbc相關可以使用runtime
provide: 編譯和測試有效,最後在運行和打包安裝時不使用
例如 servlet-api 的相關 jar 包需要使用provide ,因爲編譯時不會因爲tomcat引入增加jar包的導入,反而手動導入時,最終運行時添加,會和tomcat中的包衝突
system:與本地相關聯,可以實現一些jar包的使用,不在庫中,而在其他位置。