Maven实战
一、Maven介绍
1.1 现存问题
jar包问题
- jar包需要在本地保存,而且在使用的时候需要将jar复制到项目中,再build才可以生效。
- jar包的体量不小,一个项目中可能需要上百的jar的支持,这样一个项目就太大了。
- 如果jar包的版本需要升级,需要重新去搜集新版本的jar包,重新去build,时间成本太高了。
- 做一些功能时,可能需要因为几个,甚至十几个jar包,才能完成一个功能,都需要自己维护,甚至记住。
项目结构的问题
- 之前开发工具很多,有Eclipse,MyEclipse,IDEA,VSCode等等……不同的开发工具的项目的结构会有一些不同,多人协同开发时,就会造成冲突,甚至还需要统一开发工具。
整体项目的生命流程
- 整个项目从立项开发,到最后的发布上线到生产环境,没用一套统一的流程开控制。
1.2 Maven
Maven可以帮助咱们更好的去管理jar包,只需要指定好jar的一些基本的标识,就可以让jar包支持咱们的项目。而且Maven可以帮助咱们导入一个jar包后,自动将和他绑定好的其他jar包引入。
Maven可以提供一个统一的项目结构。
Maven也对整体项目的声明周期有响应的管理,从开始的编译、测试、打包、部署等操作,都提供了相应的支持。
而且还提供了分模块开发的功能。
Maven是apache组织的一个顶级开源项目。 http://maven.apache.org
二、Maven安装&环境变量配置
2.1 Maven的安装
首先下载Maven,直接去官网即可
在点击Download之后,需要注意看一下对JDK版本的支持。
Maven需要JDK的环境变量支持,一定要看一下自己又没有设置上JAVA_HOME
需要根据自己的环境变量,下载对应的压缩包。
Linux、Mac选择.tar.gz的压缩包
Windows选择zip的压缩包
下载好之后,得到一个压缩包。
解压的目录最好没有任何的中文和空格等特殊字符。推荐就放到磁盘的根目录下即可。
bin:含有mvn运行的脚本。
boot:含有类加载器框架,Maven使用这个框架来加载自己的类库。
conf:含有非常核心的settings.xml文件。
lib:含有Maven运行时需要的一些类库。
2.2 Maven的环境变量的配置配置
首先配置Maven的环境变量前,必须先查看一下JDK环境变量配置。
其次,查看一下前面说过的JAVA_HOME。
上述两点有ok的话,直接开始配置环境变量
- 配置MAVEN_HOME
- 配置到path
配置完毕后,记得重新打开一下cmd窗口。别直接在之前的cmd窗口测试。
在cmd窗口执行mvn -v
Ps:常见错误,没有配置正确的JAVA_HOME
三、仓库&settings.xml配置(重要)
3.1 仓库
Maven可以帮助咱们管理jar文件,但是,jar包是需要从网上下载下来的。
仓库很多,有官方的中央仓库,还有国内公司的仓库,还有公司内部会搭建的私服
咱们后面需要配置好国内公司的一些仓库。
3.2 settings.xml配置(重要)
在MAVEN_HOME目录下,有一个conf目录。在conf目录下就有需要修改的settings.xml文件。
需要修改三点内容
3.2.1 本地仓库地址
默认情况下,本地仓库在C盘。
Default: ${user.home}/.m2/repository
根据配置文件中的注释,默认是仍在用户目录下的.m2目录下的repository目录中。
这个本地仓库会随着玩的项目越来越多,这个仓库也会越来越大。可能会占用10多个G,甚至更多。
所以推荐放在系统盘之外。(如果就C盘,那就用默认的吧…………)
3.2.2 配置阿里云/华为云……仓库
配置阿里云仓库~
<!-- 配置远程仓库地址 -->
<mirrors>
<mirror>
<id>aliyun</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
华为云的仓库地址:https://repo.huaweicloud.com/repository/maven/
3.2.3 JDK编译版本配置
Maven他默认采用JDK1.5的编译方式去编译项目。
为了让Maven支持现在JDK的编译版本,可以指定一下现在采用JDK1.8
<!-- 配置JDK的编译版本 -->
<profiles>
<profile>
<id>jdk1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source