4. Maven
4.1 Maven 坐標
-
組成部分:Maven 坐標由
groupId
、artifactId
、version
三部分組成,用于唯一標識資源(如 jar 包 ),方便項目定義自身或引入依賴。groupId
:定義項目所屬組織名稱,通常采用域名反寫形式(如com.itheima
),體現組織或團隊歸屬。artifactId
:定義項目(模塊)名稱,代表具體的項目或模塊(如maven - project01
、hutool - all
),區分同一組織下不同項目。version
:定義項目的版本號,明確項目處于哪個開發階段或發布版本(如1.0 - SNAPSHOT
、5.8.27
)。
4.2 Maven 項目版本分類
- SNAPSHOT(快照版本):功能不穩定,處于開發中的版本。常用于團隊內部開發迭代階段,方便及時獲取最新開發成果,依賴此版本時,Maven 可能會主動更新獲取最新快照 。
- RELEASE(發布版本):功能趨于穩定,當前更新停止,可用于發行的版本。代表項目已成熟,適合正式環境使用,版本發布后一般不會再隨意變更內容 。
4.3 Spring Boot 基礎依賴
Spring Boot 提供的 starter 依賴已集成自動配置,無需手動指定版本(由 Spring Boot 父工程統一管理),坐標如下:
-
spring-boot-starter-web
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency>
Web 開發核心依賴,包含 Spring MVC、Tomcat 等。
-
spring-boot-starter-webflux
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId> </dependency>
響應式 Web 開發組件,基于 Reactor 框架。
-
spring-boot-starter-test
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope> <!-- 僅測試環境生效 --> </dependency>
測試依賴,包含 JUnit、Mockito 等工具。
-
spring-boot-devtools
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> <!-- 運行時生效,避免傳遞依賴 --> </dependency>
熱部署工具,支持代碼修改后自動重啟。
-
spring-boot-starter-actuator
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency>
應用監控組件,提供健康檢查、指標收集等功能。
4.4 簡化代碼:Lombok
-
坐標:
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.38</version><optional>true</optional> <!-- 避免傳遞依賴 --> </dependency>
-
作用:通過注解(如
@Data
@Getter
)簡化實體類代碼,自動生成 getter/setter 等。
4.5 數據庫與持久化
-
Druid 連接池
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version> </dependency>
阿里開發的連接池,支持監控、防 SQL 注入。
-
MyBatis 集成 Spring Boot
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.3.1</version> <!-- 需與 Spring Boot 版本兼容 --> </dependency>
簡化 MyBatis 配置,支持 XML / 注解方式 CRUD。
-
MySQL 驅動
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.0.32</version> </dependency>
Java 連接 MySQL 的 JDBC 驅動。
4.6 其他工具
-
Fastjson JSON 解析
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.56</version> </dependency>
阿里開發的 JSON 工具,用于對象與 JSON 字符串互轉。
4.7 擴展:AI 與文檔處理(結合 Spring AI)
-
阿里云 Spring AI Starter
<dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter</artifactId><version>1.0</version> </dependency>
集成阿里云 AI 能力(模型調用、智能服務)。
-
Spring AI 文檔解析
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-tika-document-processor</artifactId><version>0.8.1</version> <!-- 需與 Spring AI 版本匹配 --> </dependency>
結合 Apache Tika 解析 PDF、Word 等文檔內容。
4.8 生命周期(標準化構建流程)
Maven 定義的階段任務(按執行順序):
- clean:刪除
target
目錄(編譯 / 打包產物) - validate:校驗
pom.xml
格式及依賴完整性 - compile:編譯
src/main/java
為.class
文件 - test:執行
src/test/java
單元測試(需 JUnit 等框架) - package:打包為 JAR/WAR(輸出到
target
目錄) - verify:驗證打包產物(代碼檢查、覆蓋率報告等)
- install:安裝產物到本地倉庫(供本地其他項目依賴)
- site:生成項目站點文檔(需額外配置)
- deploy:發布產物到遠程倉庫(如公司私服,供團隊共享)
4.9 插件(任務執行者)
插件綁定到生命周期階段,常用插件及坐標:
-
clean 插件(清理
target
)<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-clean-plugin</artifactId><version>3.2.0</version> </plugin>
-
編譯插件(指定 JDK 版本)
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.11.0</version><configuration><source>17</source> <!-- 源碼 JDK 版本 --><target>17</target> <!-- 編譯后字節碼版本 --></configuration> </plugin>
-
Spring Boot 插件(打包可執行 JAR)
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>3.2.0</version> <!-- 與 Spring Boot 版本一致 --> </plugin>
-
其他插件:
maven-jar-plugin
(打包 JAR)、maven-deploy-plugin
(部署到遠程倉庫)等。
4.10 倉庫(依賴存儲位置)
- 本地倉庫:默認路徑
C:\Users\用戶名\.m2\repository
(可自定義,如D:\m1
),存儲下載的依賴和本地install
產物。 - 遠程倉庫:
- 中央倉庫:
https://repo.maven.apache.org
(公共依賴源) - 公司私服:如 Nexus(團隊內部共享依賴)
- 框架倉庫:如 Spring 倉庫(提供框架專屬依賴)
- 中央倉庫:
Maven 優先從本地倉庫獲取依賴,不存在則從遠程倉庫下載。
4.11 maven依賴配置過程
依賴指當前項目運行所需的 jar 包,一個項目可引入多個依賴。
(1) 配置步驟
- 編寫標簽:在
pom.xml
中編寫<dependencies>
標簽,用于包裹項目所有依賴配置。 - 引入坐標:在
<dependencies>
標簽內,用<dependency>
引入具體依賴坐標。 - 定義坐標信息:每個
<dependency>
需定義groupId
(組織 / 公司標識)、artifactId
(項目 / 模塊標識 )、version
(版本號 ),示例:
<dependency><groupId>org.springframework</groupId><artifactId>spring - context</artifactId><version>6.1.4</version>
</dependency>
- 刷新依賴:添加完依賴坐標后,點擊相應刷新按鈕(不同開發工具操作有別,如 IDEA 中 Maven 窗口的刷新按鈕 ),引入新添加坐標對應的 jar 包。
(2) 官網查找
若不清楚依賴坐標,可到 https://mvnrepository.com/ 搜索,該網站提供豐富開源庫的 Maven 坐標信息 。
(3) 排除依賴
<exclusions><exclusion><groupId>org.springframework.ai</groupId><artifactId>spring-ai-tika-document-reader</artifactId></exclusion>
</exclusions>