Maven的概述
- 擅长管理大型项目
- 自动管理你需要的jar包
- 自动进行下载我们需要的jar包
Maven是一个用来管理java项目,依赖管理(jar包),项目构建的工具。
Maven概念模型
- 项目对象模型(Project Object Model):
每个maven项目都有一个pom.xml文件,定义工程所依赖的jar包,本工程坐标,打包运行方式。 - 依赖管理系统(基础核心):jar包的统一管理 (jar: java rar)
- 项目构建:项目生命周期管理:编译,测试,打包,部署,运行。
- 一组标准集合。maven有自己标准的工程目录结构,定义坐标有标准。
- maven管理项目生命周期过程都是基于插件完成的,例如:开发中使用的tomcat插件。
Maven仓库的概念
本地仓库:相当于缓存
中央仓库:由maven团队统一维护的远程仓库
远程仓库(私服)
Maven坐标
包名 groupId:项目组织唯一标识符,实际对应Java的包结构,一般写公司组织名称eg:com.alibaba
类名 artifactId:项目名称
版本 version:定义项目的当前版本
Maven安装配置
- 需要配置环境变量:M2_HOME 路径为maven解压包路径
- Path编辑在最末添加 %M2_HOME/bin%
- setting.xml文件中需要自己修改localrepository的路径(这里自己创建了一个新的空文件夹作为自己的localwarehouse)
- 需要更新IntelliJ中 add configuration中maven的general部分。修改maven home directory的路径为maven解压包路径。
- 将修改后的setting.xml路径也一并更新。
可以cmd测试mvn -version 检查环境变量是否配置成功。
集中版本管理:选中版本号后,按 ctrl+alt+v
maven项目图解
Note:建立的java项目module file location不能有中文和空格。
Maven常用命令
Maven的常用命令
- clean 清楚编译产生的target文件夹内容,可以配合相应命令使用:如mvn clean package
- compile 将程序编译成class
- test 测试命令(在pom文件中可以添加skipTests)
- package 打包命令
- install 可以把项目下载到本地
更改打包后的文件名:
< finalName>{project.artifactId}< /finalName>
Install命令后地址解析:
插件管理
jdk编译版本的插件:
配置Tomcat插件
依赖
导入servlet依赖
由于Tomcat中也有servlet,所以导入servlet坐标依赖时,添加scope为provided,避免错误。
依赖范围
依赖强度:compile > provided > runtime > test
继承
创建父模块,不用写Java代码,删除src文件夹。
指定父工程打包类型:pom
指定依赖:比如:junit, mysql
建立子工程,在parent文件夹下,groupId和父工程一样。
这里就不需要再写父工程指定过的依赖。
依赖管理
不做依赖管理时,子工程会继承父工程的一切。
当父工程有1万个依赖,而子工程只需要其中一个时:
父工程加入dependencyManagement
子工程pom文件加入父工程有的jar包,不需要写明版本号
这时候父工程负责管理版本号
如果子工程不想使用父工程的版本,可以直接指名版本号。
排除依赖
排除模块1中MySQL的依赖
添加exclusion,复制模块1中的mysql依赖粘贴到exclusions中。
聚合
在父工程中,modules管理子工程的发布和打包。解决模块之间有依赖,一个个的安装也会很麻烦。
聚合工程