1.简介
-
Maven是一款自动化的构建工具
-
构建的环节
-
1)清理
-
2)编译
-
3)测试
-
4)报告
-
5)打包
-
6)安装
-
7)部署
-
2.安装Maven核心程序
-
1)保证有JAVA_HOME环境变量
-
2)将下载好的Maven核心程序apache-maven-3.2.2-bin.zip解压到一个非中文无空格的目录中,并配置M2_HOME环境变量
-
3)配置成功之后即可在命令行中输入mvn -v查看maven的版本信息
-
4)在Maven核心程序的conf目录中的settings.xml文件中配置本地仓库
<localRepository>E:\RepMaven</localRepository>
3.Maven的核心概念
-
POM
-
Project Object Model:项目对象模型,将Java工程的相关信息封装为对象作为便于操作和管理的模型
-
-
坐标
-
使用如下三个向量在Maven的仓库中唯一确定一个Maven工程
-
1)groupId:公司或组织的域名倒序+当前项目名称
-
2)artifactId:当前项目的模块名称
-
3)version:当前模块的版本
-
-
掌握能根据坐标找到本地仓库中的Maven工程,也能通过仓库中的工程写出坐标
-
-
依赖管理
-
依赖的范围
-
1)test
-
只有测试程序可以使用
-
-
2)provided
-
主程序和测试程序都可以使用,但是部署到Tomcat服务器上时不会放到WEB-INF目录的lib目录下
-
-
3)compile
-
主程序和测试程序都可以使用,部署到Tomcat服务器上时也会放到WEB-INF目录的lib目录下
-
-
-
依赖的传递性
-
只有范围是compile时才具有传递性
-
-
依赖的原则:解决jar包冲突
-
1)路径最短者优先
-
2)路径相同时先声明者优先
-
-
统一管理目标jar包的版本
-
在pom.xml文件的properties标签中自定义一个标签声明jar包的版本,然后在导入jar包中使用${自定义的标签名}获取版本
-
-
<properties>
<spring.version>4.1.1.RELEASE</spring.version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
-
仓库
-
1)本地仓库
-
为当前本机电脑上的所有Maven工程服务
-
-
2)远程仓库
-
①私服
-
架设在当前局域网环境下,为当前局域网范围内的所有Maven工程服务
-
-
②中央仓库
-
架设在Internet上,为全世界所有Maven工程服务
-
-
③中央仓库的镜像
-
架设在各个大洲,为中央仓库分担流量。减轻中央仓库的压力,同时更快的响应用户请求
-
-
-
仓库中的文件
-
1)Maven的插件
-
2)我们自己开发的项目的模块
-
3)第三方jar包
-
-
4.在Eclipse中配置Maven
-
1)指定Maven核心程序的位置
-
操作路径:Window→Preferences→Maven→Installations
-
图解
-
-
2)指定Maven核心程序配置文件的位置
-
操作路径:Window→Preferences→Maven→User Settings
-
图解
-
-
-
掌握如何在Eclipse中创建Maven版的Java工程和Web工程
5.继承
-
创建一个父工程,打包方式选择pom,并在pom.xml文件中设置依赖管理
<!-- 通过继承管理依赖 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
-
在子工程的pom.xml文件中通过parent标签配置父工程
<!-- 配置父工程 -->
<parent>
<groupId>com.atguigu.maven</groupId>
<artifactId>Parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 配置从当前工程出发查询父工程中的pom.xml文件的相对路径 -->
<relativePath>../Parent/pom.xml</relativePath>
</parent>
6.聚合
-
在总的聚合工程中使用modules/module标签组合,指定模块工程的相对路径即可
<!-- 聚合 -->
<modules>
<module>../MakeFriend</module>
<module>../OurFriend</module>
<module>../HelloFriend</module>
<module>../Hello</module>
</modules>