Maven学习

本文详细介绍了Maven的仓库搜索顺序、多仓库配置规则,以及Maven的生命周期模型,包括核心阶段如clean、compile、test等。还对比了install、package和deploy命令的区别,帮助开发者理解Maven的构建流程。

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即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值