Maven(一)
Maven概述
Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
(一)提供了一套标准化的项目结构
不同的IDE项目结构是不一样的,如IDEA创建的项目导入eclipse是运行不了的。但maven提供了一个标准,使得项目可以在不同的IDE中都可以成功运行。
maven标准化后的项目结构如下:
(二)提供了一套标准化的构建流程
Maven提供了简单的指令使得可以简单的完成一系列的操作。
(三)提供了一套依赖管理机制
依赖管理:管理你项目所依赖的第三方资源,如jar包、插件等。
对于依赖管理来说,下载jar包和版本问题很繁琐,而通过maven的配置文件进行简单的配置就可以完成这个过程。
项目管理中不仅仅只有maven这样的工具,但是从下面的市场占有率来看,maven的确是目前项目管理的主流。
Maven简介
Apache(阿帕奇基金组织)是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。如果想了解详细内容可以前往官网Maven – 欢迎来到 Apache Maven。
Maven模型如图所示:
项目对象模型如下:
依赖管理模型如下:
对于上面的示例图片中,我们需要关注一个结构,这个结构我们称其为jar包:
<groupId></groupId> //项目隶属的组织名称
<artifactId></artifactId> //模块名称
<version></version> //项目版本号
通过简单的命令就可以找到各种jar包并不是突然的,这个jar包都在maven仓库中。
Maven的仓库分为三种:本地仓库,中央仓库和远程仓库。本地仓库有一些常用的jar包;中央仓库是由Maven团队维护的全球唯一的仓库,这个仓库中拥有齐全的开源jar包;而远程仓库(私服)一般由公司团队搭建的私有仓库,毕竟中央仓库不再国内,连接下载的速度很慢,为此,搭建一个私人的仓库,结构和Maven团队的仓库差不多是十分必要的。
当项目需要导入所需的jar包,maven首先先去本地仓库寻找,如果存在则直接导入,如果不在则去中央仓库寻找并下载,下载到本地仓库后再导入项目。
如果私人或公司假设了远程私服仓库,那么项目在导入所需jar包时如果本地仓库没有,则需去远程仓库找,如果远程仓库找不到则需去中央仓库下载,不过一般私服是完全克隆中央仓库的,所以应该不存在找不到的问题。
Maven的安装
下载Maven
从官网中下载Maven.zip包。
点击download进入以下页面。
点击指示位置,稍等几秒下载完毕,下载后解压在一个你喜欢的位置。
配置环境变量
接下来配置环境变量,赋值你maven包的根位置。
然后打开环境变量,在系统变量下新建一个MAVEN_HOME,将maven安装的位置粘贴进去。
然后点击系统变量中的path,进行编辑,然后新建%MAVEN_HOME%\bin
,如下所示:
做完上述的一切后打开cmd,然后输入mvn -version
查看mvn是否安装成功。
配置本地仓库
在maven创建一个目录mvn_resp,而后我们将使用这个目录作为maven的本地仓库。
而后打开apache-maven-3.8.5\conf\setting.xml。我们要修改本地仓库信息。找到这一行:
找到后将刚刚创建目录的位置复制给它即可。
配置阿里云私服
同样地,修改该配置文件setting.xml中的mirrors标签。
我们复制如下的xml内容并粘贴到mirror标签中。
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
Maven的基本使用
命令使用
如果你想要用Maven的标准格式创建一个项目,只需在选择项目时以Maven的形式创建即可。
在没有配置IDEA的情况下,我们可以在项目根目录打开黑窗口来完成编译、清理、测试、打包、安装等一系列操作。
mvn compile
mvn clean
mvn test
mvn package
mvn install
生命周期
对于同一个生命周期来说,如果你执行后面的命令,前面的命令会自动执行。
maven的生命周期分为三段,分别是clean清理工作,default核心工作和site产生报告和发布站点。
IDEA配置Maven
一般来说IDEA自带Maven,但是我们可以使用自己的maven。
然后还需修改配置文件和本地仓库。
导入maven项目
依赖管理
怎么写依赖模板相信通过前面的学习都已了然于心了。
只需写出坐标结构,然后写出你想要的模块名称,本地仓库就会自动提示。
导入后,如果本地仓库没有该jar包,你可以点一下下图那里的按钮,他能够去中央仓库或私服下载。
同样地,当你将依赖的xml内容删掉时,我们也需要按那个按钮,使jar包消失。
如果你使用的是IDEA,可以在配置文件下按alt+insert选择depandency快速搜索jar包。IDEA会自动帮你写好依赖模板。
总结如下:
- 在pom.xml中编写
<dependencies>
标签 - 在
<>
标签中使用<dependency>
引入坐标 - 定义坐标的groupid,artifactid,version
- 点击刷新按钮,使坐标生效
依赖范围
通过设置坐标的依赖范围,可以设置对应jar包的作用范围:编译环境、测试环境、运行环境。