在传统项目管理中,经常会出现 jar 包不统一、不兼容的问题,开发者饱受其害,因此我们需要新的项目管理工具——Maven(本身也是 JAVA 做的)。
开发中经常需要在官网寻找 jar 包:https://mvnrepository.com/
Maven的概念与作用
Maven是什么
- maven 的本质是一个项目管理工具,将项目开发和管理过程抽象从成一个项目对象模型(POM)
- POM(Project Object Model):项目对象模型
中间蓝色的部分才是 Maven 。
Maven的作用
- 项目构建:提供标准的、跨平台的自动化项目构建方式
- 依赖管理:管理项目依赖的资源(jar包),避免版本冲突问题
- 统一开发结构:提供标准的、统一的项目结构
下图为 java 工程结构,跟 web 工程有一点区别。
Maven的安装与下载
下载地址:https://maven.apache.org/download.cgi
Binary tar.gz archive
-------适用于Linux、MacOsX系统的二进制安装工具Binary zip archive
-------适用于Windows系统的二进制安装工具Source tar.gz archive
-------Linux系统下的源码Source zip archive-
------Windows系统下的源码
source 表示可以查看源代码的,比 binary 大一些,如果你想看一下 maven 的源码可以下载这一类的。
binary 表示编译后的二进制文件,一般比较小,适合直接在项目中使用。
maven环境变量配置
- 因为依赖于 java,所以需要配置
JAVA_HOME
(这个写 JAVA 的应该都有) - 设置 maven 自身的运行环境,需要配置
MAVEN_HOME
在系统变量新增 MAVEN_HOME : D:\Maven\apache-maven-3.8.6-bin\apache-maven-3.8.6
(根据自己刚刚安装的地址略做修改即可)
path 里新增:%MAVEN_HOME%\bin
测试环境变量配置成功:cmd 里输入 mvn(报错很正常,只要有就行)
基础概念
仓库
用于存储资源,包含各种 jar 包。
私服就是为了解决直接访问中央速度慢和版权问题。
坐标
成千上万的 jar 包放在仓库里,我们应该怎么找到想要的 jar 包呢?
坐标即是类似于地址的东西,可以帮助 maven 工具进行查找。
每次引入一个 jar 包,都需要在 pom.xml
中加入类似代码:
仓库配置
本地仓库
在 cmd 里执行 mvn 后,c盘自己的用户目录下将生成 .m2
文件夹,这就是本地仓库。
然而将仓库放在c盘,它以后会越来越大,直到受不了。因此,我们需要自定义配置仓库,改变它的存储位置。
- 先在d盘某文件里建一个 repository 文件(这里是在
D:\Maven
文件夹下新建的) - 再找到 maven 下的
conf
文件夹,点开里面的settings.xml
- 将
<localRepository>/path/to/local/repo</localRepository>
从注释中粘贴出来 - 将
/path/to/local/repo
改为自己想要存放的仓库路径
现在,下载的jar包就会存在自己的 repository 文件夹下。
总结如下:
远程资源
各种 jar 包默认从中央仓库下载,特别的慢,因此我们需要配置镜像仓库。
配置镜像仓库
仍然是在 maven 下的 conf 文件夹中,在 settings.xml
里设置 mirrors 标签。
这里配置了阿里云镜像。
代码如下:
<mirror>
<!-- 镜像唯一标识 自己随便取 -->
<id>nexus-aliyun</id>
<!-- 对中央仓库进行镜像,即代替 -->
<mirrorOf>central</mirrorOf>
<!-- 名称 没啥用-->
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>