对Maven介绍的非常详细的一篇博客:https://www.cnblogs.com/whgk/p/7112560.html
1.Maven简介
- Maven是一个高级项目管理工具。
- 本地仓库:计算机中一个文件夹,自己定义是哪个文件夹
- 中央仓库:网上地址 https://repo1.maven.org/maven2/
下载速度慢--> 配置国内镜像(阿里)
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
- 保证 JDK 版本和开发环境一致
坐标:
- 每一 jar 文件都有一个唯一坐标.通过坐标可以精确确定是哪个 jar
- 坐标组成
Group ID : 公司名.公司网址倒写
Artifact ID : 项目名
Version : 版本
- pom
英文名称(Project Object Mode) 项目对象模型,把 project 当作对象看待,通过 maven 构建工具可以让对象(项目)和对象(项目)之 间产生关系,网址(查看坐标) http://mvnrepository.com/
2.创建Maven项目
1. New--> Maven project
2. 勾选复选框,表示创建一个简单 Maven 项目(不应用任何模板)
3. 填写项目信息
3.1 Packaging: 项目的类型,最终会被打包成什么类型.
3.1 jar : java 项目
3.2 war: web 项目
3.3 pom:逻辑父项目
3.3.1 只要一个项目有子项目必须是 pom 类型
3.Maven 项目目录结构(jar 类型)
2. src/main/java 真实目录的快捷目录,写 java 代码
3. src/main/resources 快捷目录
3.1 存放配置文件.
3.2 虽然看见 resources 但是里面所有配置文件最终会被编辑放入到 classes 类路径
4. src/test/java 写测试 java 代码
5. src/text/resources 测试的配置文件夹
6. pom.xml maven 的配置文件
6.1 当前项目所依赖的其他项目或 jar 或插件等
4.Maven 项目之间的关系
1. 依赖关系
1.1 标签把另一个项目的 jar 引入到当过前项目
1.2 自动下载另一个项目所依赖的其他项目
2. 继承关系
2.1 父项目是 pom 类型
2.2 子项目jar或war,如果子项目还是其他项目的父项目,子项目也 是 pom 类型.
2.3 有继承关系后,子项目中出现标签 2.3.1 如果子项目和和与父项目项目,在子 项目中可以不配置和
2.4 父项目 pom.xml 中是看不到有哪些子项目.在逻辑上具有父子项目关系.
<parent>
<groupId>com.bjsxt</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
3. 聚合关系.
3.1 前提是继承关系.父项目会把子项目包含到父项目中.
3.2 子项目的类型必须是 Maven Module 而不是 maven project
3.3 新建聚合项目的子项目时,点击父项目右键新建 Maven Module
3.4 具有聚合关系的父项目,在 pom.xml 中
<modules>
<module>child2</module>
</modules>
3.5 具有聚合关系的子项目,在 pom.xml 中
<parent>
<groupId>com.bjsxt</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
4. 聚合项目和继承项目区别
4.1 在语意上聚合项目父项目和子项目关系性较强
4.2 在语意上单纯继承项目父项目和子项目关系性较弱
5. 写在父项目
5.1 作用:声明可能使用到的所有 jar
5.2 子项目中只需要有坐标的和,继 承父项目
5.3 在父项目中把所有版本好进行统一管理
5.4 父项目 pom.xml
5.4.1 子标签名称自定义
5.4.2 ${名字} 引用标签的值
<properties>
<spring-version>4.1.6.RELEASE</spring-version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring-version}</version>
</dependency>
</dependencies>
</dependencyManagement>
5.5 子项目
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
</dependencies>