Maven工具之快速入门(此篇绝对足够!)
在前面的博客 Maven工具之安装Maven(附详细演示过程)、Maven工具之创建第一个项目分别从实践的角度演示了Maven工具的安装、配置、使用,在篇博客将侧重从理论的角度介绍一下Maven工具。
理论可能会有些枯燥,建议你先把前面两篇博客的操作跟着做一遍,然后带着为什么要这要操作
的疑问再来阅读此篇博客,这样效果更好一些。
一、Maven
相关概念
1、什么是Maven?
Maven
(发音为[ˈmevən],谐音比如妹瘟
),在美国是一个口语化的词语,代表专家、内行的意思。(我一般念骂瘟
,????????????)
Maven 是一个项目管理工具,它包含了一个项目对象模型
(POM:Project Object Model),一组标准集合
,一个项目生命周期
(Project Lifecycle),一个依赖管理系统
(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)、目标 (goal)的逻辑。
好吧,上面这段话是抄的,简单的说 Maven
就是用来管理项目依赖工具!
2、Maven
有什么作用?
在传统的项目中,必定会有一个lib文件夹,用来导入各种jar包。也就是说传统的项目将jar(也称依赖)与项目真正的功能实现代码放在了一起。
比如之前在整合SSM框架时,lib文件夹中导入二三十个jar包。
当jar多的时候,首先是增大了项目大小,更关键的时候管理成本高,效率低下,还容易出现jar包冲突。
而Maven
工具的作用就是统一管理所有jar包
,当项目需要jar包时,只需要告诉Maven相应的依赖标识(资源定位:组织名、项目名、版本号)。即Maven核心功能——依赖管理
除了依赖管理这个重要功能,Maven还提供了另外一个功能——一键构建!
项目往往都要经历编译
、测试
、运行
、打包
、安装
、部署
等一系列过程,
而一键构建
,就是Maven
提供相应的命令,只要执行命令就能完成上面的所有过程。(后面会介绍Maven常使用的命令)
3、Maven
仓库又是什么?
前面说到Maven工具对所有依赖进行统一管理
,仓库
,说白了就是统一存放jar的文件夹。(默认路径为~/.m2/repository
)
仓库又分三种,分别是本地仓库
、远程仓库
、中央仓库
。本地仓库
:自己电脑中存放jar的文件夹,如上面的~/.m2/repository
远程仓库
:一般是公司服务器中存放jar的仓库,也称为私服
中央仓库
:可以理解为主仓库,默认所有的Maven客户端都可以访问,下载jar包。比如https://mvnrepository.com/
Maven
管理jar的一般流程是,先访问本地仓库
,没找到再去中央仓库
找(需要网路),当然也可以配置为访问远程仓库
(如果远程仓库
没有,远程仓库
会自动去中央仓库
下载)。
4、Maven
依赖坐标、定位又是什么?
在传统的项目中,我们如何区分一个jar包?
是根据jar的名字吧,比如junit-1.2.jar
,但是如果有人把这个文件的名字故意改成了spring-core.jar
,如果你不查看里面的内容,你能区分出来?
因此需要一个标识来唯一一个jar包,即依赖坐标
,而通过依赖坐标
查找依赖
就称为定位
。
依赖坐标一般包括组织名
、项目名
、版本号
。
我们在pom.xml配置依赖时,使用的就是依赖坐标
。
二、Maven
项目结构
三、Maven
常使用的命令
1、mvn clean
清除编译生成的文件
2、mvn compile
编译项目
3、mvn test
测试命令
先运行一下mvn clean
命令,对比运行结果明显。
从执行后的效果可以看出,mvn test
命令做的事包括了mvn compile
,并且还编译了测试代码、资源。
4、mvn package
打包命令
先运行一下mvn clean
命令,对比运行结果明显。
5、mvn install
安装命令
6、mvn tomcat7:run
命令
首先需要在项目中的pom.xml配置tomcat7插件。
命令执行效果是将项目放入tomcat
容器中运行,此命令需要输入,没有快捷按钮。
四、Maven
项目生命周期
前面介绍Maven也是用来运行定义在生命周期阶段(phase)中插件(plugin)、目标 (goal)的逻辑。Maven 对项目构建过程分为三套相互独立的生命周期,这三套生命周期分别是:Clean Lifecycle
构建前的清理工作。Default Lifecycle
构建的核心部分,包括编译、测试、打包、部署等。Site Lifecycle
生成项目报告、站点、发布站点。
通俗的理解,每执行完一个命令,项目就处于响应的状态。
以上就是Maven工具之快速入门主要内容。主要是理论介绍,操作实践请参考之前的两篇博客 Maven工具之安装Maven(附详细演示过程)、Maven工具之创建第一个项目。