官网 Maven仓库搜索 软件安装
阿里云
https://maven.aliyun.com/mvn/view

软件原理

mvn help:system

|
- 软件位置
D:\ZYF.Program.ZYF\apache-maven-3.6.3
- 配置文件User settings file
D:\ZYF\.m2\settings.xml
- 仓库文件Local repository
D:\ZYF\.m2\repository |
- 软件目录
image.png |

IDE插件使用


- 参考
https://www.liaoxuefeng.com/wiki/1252599548343744/1255945359327200 | | —- | —- | —- | | 设置
- 阿里云镜像
- 字符集
| | |

Maven命令

|

版本

mvn -version |

mvn clean
mvn install

参考

Maven项目结构

  • 提供了一套标准化的项目结构;
    1. a-maven-project
    2. ├── pom.xml
    3. ├── src
    4. │ ├── main
    5. │ │ ├── java
    6. │ │ └── resources
    7. │ └── test
    8. │ ├── java
    9. │ └── resources
    10. └── target

项目描述文件pom.xml

  • POM是项目对象模型(ProjectObjectModel)
  • Maven使用groupId,artifactId和version唯一定位一个依赖。

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <modelVersion>4.0.0</modelVersion>
    6. <groupId>groupId</groupId>
    7. <artifactId>test.maven.java</artifactId>
    8. <version>1.0-SNAPSHOT</version>
    9. <properties>
    10. </properties>
    11. <dependencies>
    12. <dependency>
    13. <groupId></groupId>
    14. <artifactId></artifactId>
    15. <version></version>
    16. </dependency>
    17. </dependencies>
    18. </project>
  • 参考

构建流程

|

生命周期lifecycle


- 默认构建:default
- 项目清理:clean
- 项目建站:site
|

阶段phase

|

目标Goal

| | —- | —- | —- | |
- 参考
| | |

插件plugins

image.png

依赖管理

|

依赖唯一ID

对于某个依赖,Maven只需要3个变量即可唯一确定某个jar包:
- groupId:属于组织的名称,类似Java的包名;
- artifactId:该jar包自身的名称,类似Java的类名;
- version:该jar包的版本。
|

依赖仓库


- 本地仓库路径
C:\Users\ZYF\.m2\repository
- 中央仓库
repo1.maven.org |

settings.xml配置文件

可以配置仓库 | | —- | —- | —- | |

搜索第三方组件

mvnrepository | | |

依赖关系

Maven定义了几种依赖关系,分别是compiletestruntimeprovided

scope 说明 示例
compile 编译时需要用到该jar包(默认) commons-logging
test 编译Test时需要用到该jar包 junit
runtime 编译时不需要,但运行时需要用到 mysql
provided 编译时需要用到,但运行时由JDK或某个服务器提供 servlet-api


模块管理