架構-maven-簡述

關於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包的使用,不在庫中,而在其他位置。

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