
| 目錄 | 核心文件 | 功能說明 |
|---|---|---|
| bin/ | mvn, mvn.cmd, mvnDebug* | 啟動腳本:配置 classpath、系統屬性、呼叫 Java 啟動類 |
| boot/ | plexus-classworlds-*.jar | 類加載器框架,提供豐富語法配置類載入策略,Maven 核心類隔離關鍵 |
| conf/ | settings.xml | 全域配置:鏡像、認證、Profile、代理、離線模式等 |
| lib/ | maven-core-*.jar, maven-model-*.jar, aether-*.jar, guice-*.jar... | Maven 模組化運行時依賴,含核心邏輯、模型解析、依賴解決、DI 容器等 |
~/.m2/settings.xml 做用戶級隔離| 生命周期 | 核心階段 | 用途 | |
|---|---|---|---|
| clean | pre-clean → clean → post-clean | 清理構建產物 (target/) | |
| default | validate → compile → test → package → verify → install → deploy | 核心構建流程 | |
| site | pre-site → site → post-site → site-deploy | 專案文檔站點生成 |
| 命令 | 執行階段 | 產出/作用 | 典型場景 |
|---|---|---|---|
mvn clean | clean | 刪除 target/ | 強制全新構建前 |
mvn clean compile | clean → compile | target/classes/ | 僅編譯主代碼驗證語法 |
mvn clean test | clean → test | target/test-classes/, surefire-reports/ | 執行單元測試 |
mvn clean package | clean → package | target/*.jar|war | 打包不安裝本地倉庫 |
mvn clean install | clean → install | 安裝至 ~/.m2/repository/ | 日常開發最常用 |
mvn clean deploy | clean → deploy | 發布至遠程私服 | CI/CD 流水線/正式釋出 |
mvn clean install -DskipTests | install (跳過 test) | 快速安裝 | 確信測試通過時加速 |
mvn dependency:tree | - | 依賴樹輸出 | 排查版本衝突/傳遞依賴 |
mvn help:effective-pom | - | 合併父 POM 後完整視圖 | 調試配置繼承問題 |
# 等價於 mvn clean install
mvn clean
mvn install
# 僅重新編譯測試代碼並執行
mvn test-compile surefire:test
# 離線模式構建 (需依賴已快取)
mvn clean install -o
現代 Eclipse (4.7+) 內建 m2e 插件,無需額外安裝:
| 工具 | 定位 | 學習建議 |
|---|---|---|
| Gradle | Groovy/Kotlin DSL、增量構建、多專案強 | Android/ Spring Boot 新專案首選,值得深入 |
| Ant | XML 腳本、程序式、無約定 | 僅維護舊專案需了解,新專案不推薦 |
| Make | C/C++ 為主、基於時間戳 | Java 生態極少用,了解即可 |