概述
- Maven是基于java平台的项目构建,依赖管理和项目信息管理,是跨平台的项目管理工具
- 通俗点讲Maven就是帮助我们寻找需要的jar包的,我们不再去各大网站去下载
- 只需只需要通过Maven的坐标在Maven仓库取即可找到并自动下载导入到项目工具库中
Maven官网
下载Maven
http://maven.apache.org/download.cgi 选择类型 apache-maven-3.6.3-bin.zip
Maven官网插件
http://maven.apache.org的plugins
在线文档
http://maven.apache.org
首页下的index(category)的The Dependency Mechanism的Dependency Scope
优点
- Jar管理起来更加轻松,已经被业界广泛采用,springboot就是maven的延伸
- 部分包因为版本问题,需要手工导入
- 引发新的问题,版本冲突:大型项目中jar中依赖其它jar包
- 坐标体系使不同厂商的文件也井然有序,不会冲突覆盖
- 生命周期对应命令,使一键做完以前手动的n步事情
缺点
- 下载异常让初学者手足无措,不得不删掉仓库重新下就好了,为什么好了,不知道
- 版本冲突:大型项目中jar中依赖其它jar包,会发生你调3.1,我调3.2,导致版本冲突问题(maven采用就近原则)
- 本地仓库日积月累巨大,很多低版本的jar已经无用,或者过气的技术的jar
- 大型项目中jar冲突非常厉害,仍需手动排除,而且实现方式很多,没有统一规则。而springboot完美解决这一个问题
Maven三大仓库
远程仓库
建立在国外服务器的网站上,供全球java开发人员使用!(也叫中央仓库)
镜像仓库
由于远程仓库需要访问到国外,所有人去访问一个中央仓库下载,中央仓库压力山大!于是全球各地做镜像仓库,在空闲时访问远程仓库下载更新好。用的时候即可访问镜像仓库下载jar包
本地仓库
由于我们每次需要jar包,都要去远程仓库下载且没网又无法访问。于是出现了本地仓库
本地仓库会把之前下载过的jar通过坐标存储在本地磁盘中,下载在使用时无需下载
配置Maven
1. 官网
下载地址:http://maven.apache.org/download.html
插件地址:http://maven.apache.org的plugins
在线文档:http://maven.apache.org的index(category)的The Dependency Mechanism的Dependency Scope
2. 配置仓库
打开下载到的Maven文件夹下conf\settings.xml 全局配置文件
1. <mirrors>标签内配置<mirror>标签:配置国内镜像仓库
2. <localRepository>本地路径</localRepository>
3. <profiles>下修改jdk的默认版本号
4. <profile> - <activation> - <jdk> 修改版本
5. Maven\lib\maven-model-builder-3.6.3.jar\org\apache\maven\model\pom-4.0.0.xml 可设置远程仓库的一般不改
阿里云的镜像仓库地址
# 一旦配置仓库镜像,针对原仓库的访问都会转到镜像仓库,原仓库将不能直接访问
<mirror>
<id>ali</id>
<name>ali Maven</name>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public/</url>
</mirror>
4. eclipse 集成 maven
- eclipse进入设置(window - preferences),选中Maven项
- 将"Download Artifact Sources"打钩,下载jar包的同时会自动下载器源码
- eclipse 默认继承maven但据说有问题,打开Maven项选择Installations
- 点击add设置 Installation home:Maven安装路径配置后点Finish
- 勾选新增的Maven保存
- 打开User Settings配置Global settings,Local Repository自动更新
5. IDEA集成 maven
- 打开File - Settings - Build, Execution, Deployment - Build Tools - 点击Maven
- 设置Maven home directory:maven安装的路径
- User settings file:设置settings 配置文件(记得勾选Override)
- Local repository:将自动配置
6.Maven目录结构
- –src/main/java --存正确的java代码
- –src/main/resources --存资源文件
- –src/test/java --存要测试的java代码
- –pom.xml --添加jar包的依赖的坐标
maven添加依赖
什么是依赖呢?
依赖也就是项目必须依赖外部某些jar包才可以运行,把着个jar包看作依赖
如何找到依赖?
依赖通过以下三个节点,可以让maven自动下载并导入项目
- groupId:是maven的坐标,指定了jar的组ID,一般是公司名倒着写。(本地仓库中的第一层文件夹)
- artifactId:项目ID(也叫模块ID),一般都为项目的名字
- version:当前项目的版本号
如何添加依赖
在Maven项目中打开pom文件,里面找到dependencies节点在内部添加类似如下依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
如何可以找依赖?
可以通过maven中央仓库查找需要jar包的关键字即可找到相关依赖
Maven常用的命令
命令 | 解释 |
---|---|
clean | 清理Target文件目录,但不会清理Maven本地仓库内对应的数据 |
compile | 编译程序,把 .java文件转换成 .class |
validate | 验证代码是否有错误 |
test | 测试 |
site | 站点文档 |
package | 把项目打包成 jar、war(将程序打包,存在target目录下) |
deploy | 部署到私服(打包、本地库、远程仓库) |
install | 安装jar到本地仓库中(打包并存储在本地库) |
run | 运行 |
每个周期中运行一个命令时,在这个周期里的其他在该命令之前的phase步骤都会执行
这意味着一下执行了很多的命令,也称为一键部署,而这过程都是全自动的
Maven的生命周期
运行顺序: 清理 , 编译 , 测试 , 打包 , 继承测试 , 验证 , 部署
Maven定义3套相互独立生命周期:
clean # 清理项目
default # 构建项目
site # 生成项目的站点
三套生命周期运行时相互独立的,且后面的阶段依赖前面的阶段;
例如:运行package进行打包, 分别会执行 compile,test 是依次执行的
clean 清理项目的3个阶段
pre-clean #执行清理前的操作
clean #清理上一次构建生成的文件
post-clean #执行清理后的文件
default构建项目的生命周期(最核心的)
compile #编译
test #测试
package #打包
install #组装
site生成站点的生命周期(会根据pom配置的信息自动生成一些站点)
pre-site #在生成项目站点前做的工作
site #生成项目站点文档
post-site #在生成项目站点后要完成的工作
site-deploy #发布生成的站点到服务器上
Maven报错常见问题
1. Spring Boot 新建项目pom.xml文件报错 Failure to transfer org.springframework.boot:spring-boot-maven-plugin
删除.m2\repository中后缀名为lastUpdated的文件
2. 刷新Maven JDK就变成JDK1.5的修改方式
方法1: 配置Maven / settings.xml添加一下代码
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
方法2: 在项目中添加
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
3.Eclipse Maven的配置文件不提示的处理方法
Eclipse - Help - Eclipse Marketplace
安装spring tools
在需要编写配置的文件右击 Open With
用spring properties editor编辑器打开对应文档
4. Maven项目时修改自带jdk的版本
settings.xml修改: -- 修改版本