分析Maven相关配置文件
首先maven安装好后,会有个settings.xml配置文件,它放在了~/.m2目录下了。如下示意图:
然后通过maven的archetype创建了maven工程,该maven工程里有一个很重要的配置文件,pom.xml,如下示意图:
简单总结settings.xml文件和pom.xml作用:
• 那么settings.xml文件是maven的全局配置文件。
• 而我们又有很多的maven工程,每个maven工程又有自己的pom.xml配置文件。
那么这个工程自己的pom.xml文件就会配置工程需要的第三方的依赖包。
解析mvn clean package命令
接下来我们看看执行了mvn clean package命令,会发生什么?
第一大步:依赖下载
第一步:电脑安装的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,然后打开之后,就能看到它声明了一个远程仓库。如下图所示步骤可以看到:
一张图总结下第一大步所做的事:
如下图中,就体现了maven本地仓库和远程仓库之间的依赖关系:
第二大步
那依赖下载好之后,就该执行下一步了,也就是执行构建(包括清理,编译,打包)
清理:指得也就是清理上一次构建的文件。上一次构建的文件在maven工程里的target目录下,清理时会把整个target目录清除。
编译:清理完目录之后,就是重新编译你的工程代码
打包:编译好之后,就是把编译后的文件打成一个jar包。
如下图所示:
那最后再用一张图总结下吧:
因篇幅问题不能全部显示,请点此查看更多更全内容