external libraries里没有maven包_Maven企业实战系列(三):彻底看懂maven的体系结构...
點擊上方藍字關注我們
“在之前的文章,我們已經體驗過了maven的高效率。
那么這篇文章,就來說一說,這個maven命令一執行,各種下載依賴,自動化執行編譯,打包(構建,build發布包),這些東西是怎么跑起來的。
”分析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包。
如下圖所示:
那最后再用一張圖總結下吧:
喜歡就點個在看再走吧總結
以上是生活随笔為你收集整理的external libraries里没有maven包_Maven企业实战系列(三):彻底看懂maven的体系结构...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: amd x4 840相当于i几(adva
- 下一篇: c语言串口通信_stm32 串口通信收发