# 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 ``` ![image-20260303092239671](assets/image-20260303092239671.png) 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 ``` ![image-20260303092733944](assets/image-20260303092733944.png) ### 项目目录 ``` 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 ![image-20260303093705204](assets/image-20260303093705204.png) ## 使用IDEA创建Maven项目 ![image-20260303094001738](assets/image-20260303094001738.png) ![image-20260303094125212](assets/image-20260303094125212.png) # 管理依赖 - pom.xml 每个项目都有,核心的 mvn 配置文件 改动pom 需要自己手动更新 更新pom 操作如下(快捷键; CTRL+SHIFT+O): ![image-20260303103107468](assets/image-20260303103107468.png) 使用搜索库 查询开源的项目 [Maven Repository: Search/Browse/Explore (mvnrepository.com)](https://mvnrepository.com/) ![image-20260303103942770](assets/image-20260303103942770.png) ```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 ![image-20260303105214322](assets/image-20260303105214322.png) ## 父项目中依赖,子项目中直接使用 ### 父项目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 ``` ![image-20260303105727261](assets/image-20260303105727261.png) 作用域 maven 项目在不同的阶段引入到classpath中的依赖是不同的。常用依赖范围有四种: 1. compile:编译依赖范围(默认),在编译,测试,运行时都需要。 比如:log4j(常用日志jar包) 2. test: 测试依赖范围,测试时需要。编译和运行不需要。 比如:junit(常用测试jar包) 3. runtime: 运行时依赖范围,测试和运行时需要。编译不需要。 比如:jdbc驱动jar包 4. provided:已提供依赖范围,编译和测试时需要。运行时不需要。 比如:servlet-api # 间接依赖和依赖传递 ![image-20260303114444147](assets/image-20260303114444147.png)