maven重新编译的作用_Maven企业实战系列(三):彻底看懂maven的体系结构

本文详细解析了Maven的配置文件settings.xml和pom.xml的作用,以及执行`mvn clean package`命令时的依赖下载和构建过程。在依赖下载中,Maven会检查本地和远程仓库,确保所需依赖的可用性。构建过程包括清理、编译和打包,确保代码的重新编译和目标文件的生成。
摘要由CSDN通过智能技术生成
0a18784dea79fa41bf2d0f32fe4f9c5e.png d71084e64208dcdb87b80922285af551.png

点击上方蓝字关注我们

在之前的文章,我们已经体验过了maven的高效率。

那么这篇文章,就来说一说,这个maven命令一执行,各种下载依赖,自动化执行编译,打包(构建,build发布包),这些东西是怎么跑起来的。

分析Maven相关配置文件

首先maven安装好后,会有个settings.xml配置文件,它放在了~/.m2目录下了。如下示意图:

7d3da382863506ba490084d3ce992478.png

然后通过maven的archetype创建了maven工程,该maven工程里有一个很重要的配置文件,pom.xml,如下示意图:

92c9de0c1290b0986bde335a88367572.png

简单总结settings.xml文件和pom.xml作用:

  • 那么settings.xml文件是maven的全局配置文件。

  • 而我们又有很多的maven工程,每个maven工程又有自己的pom.xml配置文件。那么这个工程自己的pom.xml文件就会配置工程需要的第三方的依赖包。

e5e2bcffbc69c8da2b7455ddbb4c9d42.gif

解析mvn clean package命令

接下来我们看看执行了mvn clean package命令,会发生什么?

第一大步:依赖下载

dd8da75c-f953-eb11-8da9-e4434bdf6706.svg

第一步:电脑安装的maven首先会去分析settings.xml配置文件里的一些配置(具体哪些配置,后续文章会继续分析)

第二步:maven会去解析你的maven工程的pom.xml。

第三步:maven会去看你的pom.xml里声明了哪些依赖。

第四步:maven会去本地的仓库里去找有没有哪些依赖。

找的方式其实就是根据你的pom.xml文件中的坐标来找,也就是groupId和artifactId,version(组织和项目,版本号),去本地仓库找有没有以组织名和项目名,版本号为名字的文件夹,然后再找有没有以项目名为名的jar包。例如,有没有你需要的junit依赖

第五步:如果本地仓库没有junit,那么就会去远程仓库找junit,并下载到本地仓库,缓存起来,供你以后去使用。(所谓的远程仓库里包含了几乎所有的依赖包。)

那本地仓库在哪里呢?默认的位置就在你的%M2_HOME%/.m2/repository文件夹中。

那怎么知道maven默认设置的远程仓库的地址呢?它其实在你的maven根目录下的lib文件夹下,有个maven-model-builder-3.5.2.jar,可以用压缩软件打开这个jar包,然后在org/apache/maven/model的目录下有一个pom-4.0.0.xml,这就是个超级pom.xml,然后打开之后,就能看到它声明了一个远程仓库。如下图所示步骤可以看到:

37aef27922c1d81c0a4ec2c2994037ff.png

0f39f2b98fe7d372325ee763dd9d2a87.png

536ec3e723fde66ba22aa0a6aa7ed41e.png

df13dbc695c41a7d57be236206f5e0e6.png

一张图总结下第一大步所做的事:

如下图中,就体现了maven本地仓库和远程仓库之间的依赖关系:

a7f4eb126d97128fdef412a4082ff4b3.png

第二大步

dd8da75c-f953-eb11-8da9-e4434bdf6706.svg

那依赖下载好之后,就该执行下一步了,也就是执行构建(包括清理,编译,打包)

清理:指得也就是清理上一次构建的文件。上一次构建的文件在maven工程里的target目录下,清理时会把整个target目录清除。

编译:清理完目录之后,就是重新编译你的工程代码

打包:编译好之后,就是把编译后的文件打成一个jar包。

如下图所示:

dd38cbf7f667a210a8115d760f716968.png

那最后再用一张图总结下吧:

7ac61cf7d3ce3849afbf7975792b4ae1.png

754febf3641f4c797bdd9207bb1eea1b.png

喜欢就点个在看再走吧 8beccbda67a091570fa16d066d28ce45.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值