1,安装
2,maven what why how
Maven基于pom(项目对象模型)的项目管理工具。Maven的核心坐标
Groupid:定义当前maven项目属于的项目。
Artifactid:定义实际项目中的一个模块。
Version:定义当前项目的当前版本
packaging:定义该项目的打包方式
因为可以处理依赖关系方便,便捷的项目创建,依赖管理,项目信息描述。
创建一个maven项目即可。
原理:基于Apache提供的依赖jar包仓库,以及约定目录结构实现。
3,依赖的配置和maven的生命周期
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
4,聚合和继承
聚合是为了快速的创建项目,继承减少代码的重复性,其实没减少。
一,聚合配置代码:
<modules>
<module>../day33_01_permission</module>
<module>../day33_02_hr</module>
</modules>
其中module的路径为相对路径。
二,继承配置代码:
<parent>
<groupId>cn.crxy.oa</groupId>
<artifactId>Project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../Project/pom.xml</relativePath>
</parent>
三,继承代码过程中,可以定义属性
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>4.9</junit.version>
<maven.version>0.0.1-SNAPSHOT</maven.version>
</properties>
访问属性的方式为${junit.version},例如:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
四,将父模块中将用dependencyManagement进行管理
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cn.crxy.oa</groupId>
<artifactId>permission</artifactId>
<version>${hello.project.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
</dependencyManagement>
这样的好处是子模块可以有选择行的继承,而不需要全部继承。