Maven 基础入门
概述
Maven 是 Java 生态最主流的项目构建和依赖管理工具,提供了标准化的项目结构和构建生命周期。
标准目录结构
project-root/
├── pom.xml # 核心配置文件
├── src/
│ ├── main/
│ │ ├── java/ # 源代码
│ │ └── resources/ # 资源配置文件
│ └── test/
│ ├── java/ # 测试代码
│ └── resources/ # 测试资源
└── target/ # 构建输出目录
pom.xml 核心配置
<project>
<!-- GAV 坐标 -->
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<!-- 属性 -->
<properties>
<java.version>17</java.version>
<spring.version>3.2.5</spring.version>
</properties>
<!-- 依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</project>
依赖管理
依赖范围 scope
| scope | classpath | 打包 | 示例 |
|---|---|---|---|
| compile(默认) | 编译+运行 | ✓ | spring-web |
| provided | 编译 | ✗ | servlet-api |
| runtime | 运行 | ✓ | mysql-connector |
| test | 测试 | ✗ | junit |
| system | 编译+运行 | ✗ | 本地 jar |
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope> <!-- 编译时需要,运行时已生成代码 -->
</dependency>
依赖传递与排除
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
生命周期
Maven 三大生命周期:
Clean
- pre-clean → clean → post-clean
Default(构建)
- validate → compile → test → package → verify → install → deploy
Site
- pre-site → site → post-site → site-deploy
mvn clean # 清理 target 目录
mvn compile # 编译源代码
mvn test # 运行测试
mvn package # 打包(jar/war)
mvn install # 安装到本地仓库
mvn deploy # 发布到远程仓库
# 组合
mvn clean package # 先清理再打包
mvn clean install -DskipTests # 跳过测试