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

Maven 入門核心教程:安裝配置、目錄約定、生命周期、倉庫與 settings.xml 詳解

     編輯:Java 綜合教學

Maven 是什麼?

跨平台項目管理工具,核心三大職能:項目構建(清理→編譯→測試→報告→打包→部署)、依賴管理(自動下載傳遞性依賴、統一版本調解)、項目信息管理(坐標、文檔、團隊、SCM、CI)。

安裝與環境變量(macOS/Linux 為例)

# 1. 解壓到 ~/opt/apache-maven-3.9.x
# 2. 編輯 ~/.zshrc (或 ~/.bash_profile)
export MAVEN_HOME=~/opt/apache-maven-3.9.x
export PATH=$MAVEN_HOME/bin:$PATH
# 3. 生效
source ~/.zshrc
# 4. 驗證
mvn -v
# Apache Maven 3.9.x ... Java version: 1.8.0_xxx

標準目錄約定(約定優於配置)

project-root
├── pom.xml
├── src
│   ├── main
│   │   ├── java          # 生產代碼
│   │   └── resources     # 配置文件、屬性文件
│   └── test
│       ├── java          # 測試代碼
│       └── resources     # 測試資源
└── target                # 構建輸出(class、jar、war、報告)

手動創建 Maven 項目實戰

  1. 按上述目錄創建文件夾。
  2. 編寫 src/main/java/com/xxlxx/maven/hello/HelloMaven.java。
  3. 根目錄創建 pom.xml(四大坐標必填):
    <project xmlns="https://maven.apache.org/POM/4.0.0">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.xxlxx.maven.hello</groupId>
      <artifactId>hello-maven</artifactId>
      <version>SNAPSHOT-0.0.1</version>
    </project>
  4. 執行 mvn compile → 生成 target/classes 下的 .class 文件。
  5. mvn clean → 刪除 target 目錄。

核心概念深度解析

1. 構建生命周期

三套獨立生命周期:

  • clean:pre-clean → clean → post-clean
  • default:validate → compile → test → package → verify → install → deploy
  • site:pre-site → site → post-site → site-deploy

命令如 mvn clean install 會依次觸發 clean 生命周期至 clean、default 生命周期至 install。

2. 依賴管理與傳遞性依賴

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>5.3.30</version>
  <scope>compile</scope> <!-- 默認:編譯/測試/運行均需 -->
</dependency>

Scope 作用域:compile(默認) > test > provided > runtime > system > import。Maven 自動解析依賴樹,下載間接依賴。

3. 倉庫機制

類型位置作用
本地倉庫~/.m2/repository緩存所有下載構件,二次構建極快
中央倉庫repo.maven.apache.org官方默認遠程源
私服Nexus/Artifactory企業內網鏡像、發布私有構件、加速
遠程鏡像阿里云/騰訊云國內下載加速

4. settings.xml 兩層配置

  • 全局:$MAVEN_HOME/conf/settings.xml,影響所有用戶。
  • 用戶:~/.m2/settings.xml,覆蓋全局,**推薦修改此處**。
<settings>
  <localRepository>/custom/path/repo</localRepository> <!-- 自定義本地倉庫 -->
  <mirrors>
    <mirror>
      <id>aliyun</id>
      <mirrorOf>central</mirrorOf>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>jdk18</id>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>
    </profile>
  </profiles>
  <activeProfiles><activeProfile>jdk18</activeProfile></activeProfiles>
</settings>

常用命令速查表

命令作用
mvn clean compile清理並編譯主代碼
mvn test運行單元測試
mvn package打包(jar/war),跳過測試加 -DskipTests
mvn install安裝到本地倉庫,供其他模塊依賴
mvn deploy發布到私服
mvn dependency:tree查看依賴樹,排查衝突
mvn help:effective-pom查看合併後的完整 POM
mvn archetype:generate從原型快速生成項目骨架

最佳實踐建議

  1. 鎖定版本:<properties> 統一管理版本號,避免散落。
  2. 依賴範圍最小化:測試框架用 test,容器提供 API 用 provided。
  3. 善用 dependencyManagement:父 POM 統一版本,子模塊無需寫版本號。
  4. 配置阿里云鏡像:首次構建速度提升 10 倍+。
  5. IDEA/Eclipse 導入:直接 Open/Import pom.xml,IDE 自動識別 Maven 項目。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved