# maven-learn
**Repository Path**: hrbu2023/maven-learn
## Basic Information
- **Project Name**: maven-learn
- **Description**: maven学习笔记
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-03
- **Last Updated**: 2026-03-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 1 安装
安装JDK 配置JAVA_HOME
下载: https://maven.apache.org/download.cgi
https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.zip
apache-maven-3.9.12-bin.zip
## 1 解压缩
D:\app\apache-maven-3.9.12
2025/12/13 09:16
.
2025/12/13 09:16 ..
2025/12/13 09:16 bin
2025/12/13 09:16 boot
2025/12/13 09:16 conf
2025/12/13 09:16 lib
2025/12/13 09:16 8,391 LICENSE
2025/12/13 09:16 4,854 NOTICE
2025/12/13 09:16 1,279 README.txt
## 2 添加环境变量
在IDEA中使用
2.1 2新建环境变量 M2_HOME
M2_HOME ==== D:\app\apache-maven-3.9.12
2.2
将 %M2_HOME%\bin 添加到 PATH中
## 3 配置Maven
修改 D:\app\apache-maven-3.9.12\conf\settings.xml
3.1 配置本地仓库
3.2 设置镜像
``` xml
D:\app\apache-maven-3.9.12\repository
aliyunmaven
*
阿里云公共仓库
https://maven.aliyun.com/repository/public
```
## 4 验证
```cmd
mvn --version
```

4.1 创建Java项目
项目自定义的坐标
- -DgroupId=com.neuedu
- -DartifactId=quickstart
- -Dversion=1.0
```
mvn archetype:generate -DgroupId=com.neuedu -DartifactId=quickstart -Dversion=1.0 -DarchetypeArtifactId=maven-archetype-quickstart
```

### 项目目录
```
quickstart
pom.xml
│
└─src
├─main
│ └─java
│ └─com
│ └─neuedu
│ App.java
│
└─test
└─java
└─com
└─neuedu
AppTest.java
```
- main:主要的程序代码
- test : 测试代码,给客户发布的时候不需要
## 常见的生命周期
- mvn clean
- mvn complie 编译
- mvn test 编译
- mvn package
- install .....
# 集成到IDEA中使用
## 集成Maven

## 使用IDEA创建Maven项目


# 管理依赖
- pom.xml 每个项目都有,核心的 mvn 配置文件 改动pom 需要自己手动更新
更新pom 操作如下(快捷键; CTRL+SHIFT+O):

使用搜索库 查询开源的项目
[Maven Repository: Search/Browse/Explore (mvnrepository.com)](https://mvnrepository.com/)

```xml
4.0.0
com.neuedu.mvn
mvn-java
1.0-SNAPSHOT
jar
mvn-javaproject
http://maven.apache.org
UTF-8
17
5.7.1
org.junit.jupiter
junit-jupiter-api
${junit.version}
test
org.mybatis
mybatis
3.5.19
compile
```
# 聚合项目
Parent : 不需要写代码,只是为了管理项目生命周期,管理依赖
定义的依赖
子项目 A 订单
子项目 B 购物车
子项目 C 支付
子项目A

## 父项目中依赖,子项目中直接使用
### 父项目pom.xml
```xml
4.0.0
com.neuedu.mvn
mvn-parent
1.0-SNAPSHOT
pom
mvn-parent
http://maven.apache.org
module-a
module-b
module-c
UTF-8
5.7.1
org.junit.jupiter
junit-jupiter-api
${junit.version}
test
```
### module-a module-b module-c
```xml
4.0.0
com.neuedu.mvn
mvn-parent
1.0-SNAPSHOT
module-a
jar
module-a
http://maven.apache.org
UTF-8
```

作用域
maven 项目在不同的阶段引入到classpath中的依赖是不同的。常用依赖范围有四种:
1. compile:编译依赖范围(默认),在编译,测试,运行时都需要。
比如:log4j(常用日志jar包)
2. test: 测试依赖范围,测试时需要。编译和运行不需要。
比如:junit(常用测试jar包)
3. runtime: 运行时依赖范围,测试和运行时需要。编译不需要。
比如:jdbc驱动jar包
4. provided:已提供依赖范围,编译和测试时需要。运行时不需要。
比如:servlet-api
# 间接依赖和依赖传递
