Mave依赖



多仓库搜索顺序
(1) 在本地仓库中寻找,如果没有则进入下一步。
(2) 在全局配置的私服仓库(settings.xml中配置的并有激活)中寻找,如果没有则进入下一步。
(3) 在项目自身配置的私服仓库(pom.xml)中寻找,如果没有则进入下一步。
(4) 在中央仓库中寻找,如果没有则终止寻找。

1、如果在找寻的过程中,如果发现该仓库有镜像设置,则用镜像的地址代替,例如现在进行到要在respository A仓库中查找某个依赖,但A仓库配置了mirror,则会转到从A的mirror中查找该依赖,不会再从A中查找。
2、settings.xml中配置的profile(激活的)下的respository优先级高于项目中pom文件配置的respository。
3、如果仓库的id设置成“central”,则该仓库会覆盖maven默认的中央仓库配置。
生命周期
Maven的生命周期(lifecycle)是对构建过程进行的抽象。
它包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。
它将项目整体划分为一个个阶段,按顺序依次执行,也可以指定执行到某个阶段,然后结束。
因为Maven的生命周期是抽象的,因此它不做任何的实际工作,全部由插件(plugin)完成。
Maven 的内部有三个标准生命周期,分别是 : clean, default, site
| 标准生命周期 | 作用 |
|---|---|
clean | 项目清理 |
default(build) | 项目部署 |
site | 项目站点文档创建 |
核心阶段
| 核心阶段 | 详解 |
|---|---|
| clean | 对项目进行清理,删除target目录下编译的内容,但是不会删除本地的maven仓库已经生成的jar文件 |
| validate | 验证项目是否正确,所有必要信息是否可用(很少单独使用) |
| compile | 编译项目的源代码(将src/main中的java代码编译成class文件,输出到targe目录下) |
| test | 将单元测试的资源文件和代码进行编译,生成的文件位于target/test-classes (打包部署请跳过该阶段) |
| package | 把class文件,resources文件打包成jar包(也可以是war包),生成的jar包位于target目录下 |
| verify | 检查包是否有效(很少单独使用) |
| install | 将jar部署到本地仓库,本地的其他模块依赖该jar包时,可以直接从本地仓库去获取 |
| deploy | 将jar包部署到远端仓库,需要在maven的setting.xml中配置私服的用户名和密码,以及在pom.xml配置 |
常用命令
1. mvn clean package
依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段
package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
2. mvn clean install
依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
3. mvn clean deploy
依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
区别
install和package
maven install 是先进行打包,在target目录下生成新jar,同时将打包结果放到本地仓库的相应目录中,供其他项目或模块引用。
maven package 只是打包,并在target目录下生成新jar,maven仓库中还是老的jar。
我们在重新打包的时候,直接install即可,不需要clean。install会替换本地和仓库的jar,而且他会比较新旧jar是否有差异,来判断是否更新。
如果我们不需要jar,而且所更改代码不需要被引用,那么只需要compile即可。
本文详细介绍了Maven的仓库搜索顺序、多仓库配置规则,以及Maven的生命周期模型,包括核心阶段如clean、compile、test等。还对比了install、package和deploy命令的区别,帮助开发者理解Maven的构建流程。
1851

被折叠的 条评论
为什么被折叠?



