SpringBoot左腳進門之Maven管理家具體步驟
一、概念
Maven 是一個項目管理和整合工具。通過對 目錄結構和構建生命周期 的標準化, 使開發(fā)團隊用極少的時間就能夠自動完成工程的基礎構建配置。
Maven 簡化了工程的構建過程,并對其標準化,提高了重用性。

Maven 本地倉庫 (Local Repository):
- 每個開發(fā)者的計算機上都有一個本地倉庫,用于存儲下載的依賴庫。
- 本地倉庫通常位于用戶的 ~/.m2/repository 目錄下(在 Windows 上通常是 C:\Users<username>.m2\repository)。
Nexus 私服 (Private Repository):
- Nexus 是一個流行的倉庫管理工具,用于托管私有倉庫。
- 私有倉庫可以存儲企業(yè)內部的庫,也可以作為中央倉庫的緩存,提高下載速度。
- 開發(fā)者通過 HTTP 訪問 Nexus 私服,下載所需的依賴庫。
Maven 中央倉庫 (Central Repository):
- Maven 中央倉庫是公共的、開源的庫倉庫,包含了大量開源項目的庫。
- 開發(fā)者可以通過 HTTP 訪問 Maven 中央倉庫,下載開源庫。
工作流程:
開發(fā)者的 Maven 項目:
- 開發(fā)者在本地計算機上使用 Maven 管理項目。
- Maven 項目通過 pom.xml 文件定義依賴關系。
依賴查找:
- 當 Maven 需要下載一個依賴庫時,它首先檢查本地倉庫。
- 如果本地倉庫中沒有該庫,則 Maven 會嘗試從 Nexus 私服下載。
- 如果 Nexus 私服中也沒有該庫,則 Maven 會從 Maven 中央倉庫下載,并將該庫緩存到本地倉庫和 Nexus 私服中。
配置文件:
- settings.xml 文件用于配置 Maven 的全局設置,包括鏡像、服務器認證信息等。
- pom.xml 文件用于定義項目的構建配置和依賴關系。
具體步驟:
- 本地倉庫檢查:
- Maven 首先檢查本地倉庫是否有所需的依賴庫。
- Nexus 私服檢查:
- 如果本地倉庫中沒有,Maven 會嘗試從 Nexus 私服下載。
- Maven 中央倉庫檢查:
- 如果 Nexus 私服中也沒有,Maven 會從 Maven 中央倉庫下載,并將該庫緩存到本地倉庫和 Nexus 私服中。
二、Maven目錄結構
根目錄:工程名 |---src://源碼 |---|---main: //存放主程序 |---|---|---java: //源碼文件 |---|---|---resources: //存放框架的資源文件 |---|---test://存放測試程序 |---|---|---java: //java測試文件 |---|---|---resources: //java測試的資源文件 |---pom.xml://maven的核心配置文件
<project ...>
<modelVersion>4.0.0</modelVersion>
<groupId>com.itranswarp.learnjava</groupId>
<artifactId>hello</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>17</maven.compiler.release>
</properties>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.16</version>
</dependency>
</dependencies>
</project>三、倉庫
Maven 倉庫有兩種類型:
- 本地倉庫(local):自己電腦上存儲資源的倉庫,通過連接遠程倉庫獲取資源
- 遠程倉庫(remote):非自己電腦上的倉庫,為本地倉庫提供資源
- 中央倉庫:Maven團隊維護,存儲所有資源的倉庫
- 私服:公司范圍內存儲資源的倉庫,從中央倉庫獲取資源或自己的資源,僅對內部開放,不對外共享

本地倉庫:
本地倉庫說明:
Maven 本地倉庫是機器上的一個文件夾,它在你第一次運行任何 maven 命令的時候創(chuàng)建。
Maven 本地倉庫保存你的工程的所有依賴。當你運行一次 Maven 構建命令,Maven 會自動下載所有依賴的 jar 文件到本地倉庫中。它避免了每次構建時都引用存放在遠程機器上的依賴文件。
本地倉庫存放位置
本地倉庫默認被創(chuàng)建在 C:\Users\用戶名.m2\ 目錄下。要修改默認位置,在 %M2_HOME%\conf 目錄中的 settings.xml 文件中定義另一個路徑。
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>${user.home}/.m2/repository</localRepository>
</settings>中央倉庫:
Maven 中央倉庫是由 Maven 社區(qū)提供的倉庫。
//設置成功后,會從阿里的鏡像庫中獲取依賴,不會從 Maven 中央倉庫中獲取依賴了。
<!--添加如下配置:設置阿里鏡像庫-->
<mirror>
<id>ali</id>
<name>ali Maven</name>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public/</url>
</mirror>私服:
私服是一種在公司內部或局域網(wǎng)中使用的遠程倉庫。它通常由公司自己搭建,用于存儲公司內部開發(fā)的庫和插件,也可以從中央倉庫或其他遠程倉庫獲取依賴。私服可以加快公司內部項目的構建速度,同時也可以避免外部網(wǎng)絡不穩(wěn)定對項目構建的影響。

四、坐標和依賴
<dependency>
<!--工程組的標識,它在一個組織或者項目中通常是唯一的,公司或域名倒序+項目名-->
<groupId>mysql</groupId>
<!--工程的名稱,模塊名-->
<artifactId>mysql-connector-java</artifactId>
<!--工程的版本號-->
<version>8.0.31</version>
</dependency>
groupId:
這是工程組的標識。它在一個組織或者項目中通常是唯一的。例如,一個銀行組織 com.company.bank 擁有所有的和銀行相關的項目。
artifactId:
這是工程的標識。它通常是工程的名稱。例如,消費者銀行。groupId 和 artifactId 一起定義了 artifact 在倉庫中的位置。
version:
這是工程的版本號。在 artifact 的倉庫中,它用來區(qū)分不同的版本。例如: com.company.bank:consumer-banking:1.0 com.company.bank:consumer-banking:1.1<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.31</version>
<!--scope標簽代表指定依賴范圍-->
<scope>runtime</scope>
</dependency>
</dependencies>
compile:
默認值,適用于所有階段(開發(fā)、測試、部署、運行),本jar會一直存在所有階段;
runtime:
只在運行時使用,如JDBC驅動,適用運行和測試階段;
test:
只在測試時使用,用于編譯和運行測試代碼,不會隨項目發(fā)布;
provided:
只在開發(fā)、測試階段使用。五、Maven生命周期命令
| 命令 | 作用 |
|---|---|
| mvn compile | 編譯主程序 src/main ,生成target目錄,存放編譯主程序生成的字節(jié)碼文件,輸出到 target/classes |
| mvn test-compile | 編譯測試程序 src/main ,生成target目錄,存放編譯主程序生成的字節(jié)碼文件,輸出到 target/classes |
| mvn test | 編寫的測試代碼并生成測試報告(目前對于后端開發(fā)沒有太大作用) |
| mvn package | 將項目打成jar包 |
| mvn clean | 清空項目本地編譯目錄 |
| mvn install | 將項目 安裝到本地倉庫(多個項目相互依賴 相互使用時.) |
這是最常用的生命周期,用于編譯、測試、打包和部署項目。它的典型階段包括:
- validate:驗證項目的正確性以及所有必要的信息是否可用。
- compile:編譯項目的源代碼。
- test:使用合適的單元測試框架(如 JUnit)運行測試,但不包含生成的測試代碼。
- package:將編譯后的代碼打包成可分發(fā)格式,如 JAR 或 WAR 文件。
- verify:對集成測試的結果進行檢查,確保質量標準得到滿足。
- install:將包安裝到本地倉庫,以便其他本地項目可以依賴它。
- deploy:在集成或發(fā)布環(huán)境中完成,將最終的包復制到遠程倉庫中。
到此這篇關于SpringBoot左腳進門之Maven管理家具體步驟的文章就介紹到這了,更多相關SpringBoot Maven管理家內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

