Maven 專案核心配置文件 pom.xml 包含數十個標準元素。本文按功能分類整理所有核心元素:專案座標、基礎資訊、構建配置、依賴管理、倉庫、報告、分發、屬性等,附中文說明與典型用途,作為日常開發快速查閱手冊。
專案座標與基礎資訊
| 元素 | 用途 | 備註 |
| modelVersion | POM 模型版本 | 固定 4.0.0 |
| groupId | 組織唯一標識 | 通常用反向域名 |
| artifactId | 專案構件 ID | 如 myapp-core |
| version | 當前版本 | SNAPSHOT/RELEASE |
| packaging | 打包類型 | jar/war/pom/ear 等 |
| name/description/url | 專案顯示資訊 | 站點生成使用 |
| parent | 父專案座標 | 繼承配置 |
構建與生命週期
- build:plugins、resources、pluginManagement、directory、finalName、filters
- profiles:環境差異化配置(dev/test/prod)
- modules:多模組聚合,指定相對路徑
依賴管理核心
- dependencies:編譯/測試/運行時依賴,自動從倉庫下載
- dependencyManagement:統一版本鎖定,子模組引用時可省略版本號
- repositories / pluginRepositories:遠程倉庫地址
其他關鍵區塊
| 元素 | 功能 |
| reporting | 站點報告插件配置(mvn site 觸發) |
| distributionManagement | 構件部署目標(Nexus/Artifactory) |
| scm | 版本控制資訊(Git/SVN URL) |
| organization | 組織資訊(版權、連結) |
| licenses | 授權協議列表 |
| developers/contributors | 開發者/貢獻者資訊 |
| issueManagement/ciManagement | 缺陷追蹤/持續集成系統 |
| prerequisites | 構建前置條件(Maven 版本等) |
| properties | 自定義屬性,供 POM 內 ${prop} 替換 |
最佳實踐提示
- 善用 dependencyManagement 鎖定版本,避免傳遞依賴衝突
- profile 隔離環境差異,而非硬編碼
- properties 統一管理版本號、路徑、編碼等常量
- pluginManagement 鎖定插件版本,保證構建可重現