简介
- maven,是Apache下的一个纯java开发的开元项目,基于项目对象模型(POM)概念,maven利用一个中央信息片段能管理一个项目的构建、报告和文档等步骤,
- maven是一个项目管理工具,可以对java项目进行构建,依赖管理
也可用于构建和管理其他各种项目,如C#、Ruby、Scala和其他语言编写的项目
生命周期
2、生命周期操作,文件夹相应变化
(1)clean-清理操作
变化:项目路径下的target文件夹目录被删除,本地仓库中如果存在之前已安装的该项目包,不会被删除。
(2)compile-编译操作
变化:项目路径下生成了target文件夹目录,但在该目录中不包含生成的jar包或其他类型的包
(注:compile操作只会根据配置增加target文件夹中的内容,并不会删除减少内容,但在clean操作之后,再进行compile操作,文件夹中内容会根据配置发生改变。)
区别: compile与build操作的区别在于,compile是选定目标进行编译,而build是对整个项目进行编译。
(3)package-打包操作
变化:在项目路径下生成target文件夹目录,并且目录中包含生成的jar包或其他类型的包
(4)install -安装操作
变化:在package操作基础上,执行install操作后,该项目被部署到本地仓库中,可供本地其他项目进行引用依赖。
(注: 该操作包含了package命令的功能)
(5)deploy-部署操作
变化: 在install操作基础上,将项目生成的jar包或其他类型的包部署到私服仓库中,
(注:clean操作与其他生命周期不存在先后关系,生命周期的操作进行前都不会进行clean操作,所以,在进行package、install操作前先进行clean操作,或在Execute Maven Goal框中输入:mvn clean install ,即先清理后打包、安装操作。
2.1、其他周期简介
(1) validdate:验证,验证工程是否正确,所需的信息是否完整。
(2) verify:核实,检查package是否有效,是否符合标准。
(3)build:功能类似于compile,只是只对整个项目进行编译。
(4)site:站点,生成项目的站点文档。
- 编译项目流程
(1) 编译
(2) 找到pom文件,并扫描相关依赖
(3) 根据pom中依赖配置信息,到本地的maven仓库中查找jar包
(4) 如果本地没有jar包,maven会到他的中心仓库下载jar
(5) 如有私服,并且在你的maven中做了配置,那么在本地没有找到jar包,会根据maven的配置文件(setting.xml)所配置的地址,到maven的私服仓库中寻找jar,私服会根据它的配置规则在本地或中央仓库中查找jar,如果本地没有就从服务端下载到本地