首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Maven 2 入門指南:核心概念與建置生命週期完整解析

     編輯:Java 相關知識

Maven 核心術語速查

在踏入 Maven 世界前,先建立共同語言。以下關鍵字將貫穿整個建置流程:

  • Project(專案):Maven 眼中任何可建構的單元,以 pom.xml 定義的專案物件模型(POM)為核心。專案可相依其他專案,也可由多個子模組組合而成。
  • POM (pom.xml):Maven 的「大腦」,位於專案根目錄,聲明專案座標、相依套件、外掛設定等元資料,功能對應 Ant 的 build.xml。
  • GroupId:專案的全域唯一識別碼,慣用反向網域名(如 com.mycompany),避免同名專案衝突。
  • Artifact(成品):專案產出或需求的檔案(JAR、WAR、Sources JAR 等),由 groupId:artifactId:version 唯一鎖定,必須存在於倉庫才能被解析。
  • Dependency(相依性):專案建置/執行所需的外部成品,在 POM 的 <dependencies> 區塊宣告。
  • Plugin(外掛):Maven 功能的最小單位,每個外掛提供一或多個 Goal(類似 Ant 的 Target),依 POM 中繼資料執行任務。核心外掛以 Java 撰寫,亦支援 BeanShell 或 Ant 腳本。
  • Repository(倉庫):成品儲存地。分本地倉庫(Windows 預設 %USERPROFILE%\.m2\repository)與遠端倉庫(預設 Central:https://repo.maven.apache.org/maven2/)。
  • Snapshot(快照版):版本號含 -SNAPSHOT 者視為開發中版本,Maven 會自動從倉庫抓取最新快照,方便持續整合。

建置生命週期:從原始碼到交付成品的標準流程

Maven 將軟體開發通用步驟抽象為 Build Life Cycle,每個階段(Phase)對應一或多個 Goal。常見內建階段依序為:

  1. validate:驗證專案結構正確性
  2. generate-sources / process-sources:產生/處理原始碼(如 APT、代碼生成器)
  3. generate-resources / process-resources:複製/過濾資源檔至輸出目錄
  4. compile:編譯主程式碼(mvn compile 或 mvn compiler:compile)
  5. test-compile / test:編譯並執行單元測試
  6. package:打包成 JAR/WAR/EAR
  7. verify / install / deploy:整合測試、安裝至本地倉庫、佈署至遠端倉庫

關鍵特性:執行某階段時,Maven 會自動依序執行所有前置階段。例如 mvn package 會從 validate 跑到 package,確保產出完整經過編譯、測試驗證。

實戰操作速查表

指令說明
mvn clean compile清理後重新編譯主程式
mvn test執行單元測試(含編譯測試碼)
mvn package -DskipTests打包但跳過測試
mvn install安裝成品至本地倉庫,供其他專案相依
mvn deploy佈署至遠端倉庫(需 distributionManagement 設定)
mvn dependency:tree顯示完整相依樹,排查版本衝突利器

常見陷阱與最佳實務

  • 版本鎖定:避免在 <dependencyManagement> 外直接使用範圍版本,改用明確版本或 BOM(Bill of Materials)統一管理。
  • 多模組專案:父 POM 設定 <packaging>pom</packaging> 並列出 <modules>,子模組自動繼承父設定,mvn install 即可一次建置全專案。
  • 設定檔分離:利用 profiles 區分開發/測試/正式環境參數(資料庫連線、伺服器位址等),以 -Pprod 啟用。

掌握上述核心概念與生命週期,即可駕馭 Maven 2 進行標準化、可重現的專案建置。後續可深入探討外掛開發、Archetype 專案模板、以及與 CI/CD 串接等進階主題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved