maven 父maven_Maven的鸟瞰图
maven 父maven
我們每天要做的一件事是使用Maven通過發出諸如mvn install之類的構建命令來構建我們的項目。 然后,Maven查看我們項目的配置文件(親切地稱為POM),神奇地找出要執行的操作,并且,嘿,您的構建已完成。 我想我們經常這樣做,以至于我們從來沒有考慮過幕后發生的事情,在某些情況下甚至從未了解過發生了什么。 該博客簡要介紹了Maven構建生命周期,并揭示了在您發出諸如mvn clean install之類的命令時會發生什么。如果您曾經閱讀過Maven文檔,那么您將了解到Maven都是關于面向對象的分層構建結構。 在本文中,有三個主要偽像:構建生命周期,構建階段和目標,因此,一個很好的起點是解釋這些術語之間的關系。 看下面的UML圖:
直接進入,您會看到Maven HAS 1具有一個或多個構建生命周期,每個生命周期具有一個或多個構建階段,它們以給定的順序執行。 同樣,每個構建階段都有一個或多個構建目標,這些目標也將以給定的順序執行。
定義構建階段的一個好方法是舉一個例子。 Maven文檔列出了所謂的默認生命周期,以下是其構建階段:
因此,我們可以將構建階段定義為照顧構建生命周期的一部分的階段,例如編譯或測試項目。
您可以通過在命令行上指定生成階段來告訴Maven生成項目。 例如:
mvn install …表示“在默認的構建生命周期中執行直到安裝階段的所有構建階段,包括安裝階段”。
…發行了一張
…表示“將清潔生命周期的所有構建階段進行到(包括) 清潔構建階段,然后在默認構建生命周期中執行直到安裝階段的所有構建階段,包括安裝階段”。
由此可以推斷出
mvn test…命令將執行驗證構建階段,并執行其目標; 然后是編譯階段,執行其目標,最后是測試階段,執行其目標。
那么,目標是什么? 在Maven世界中,目標可以定義為單個任務或工作,實際上可以對構建項目起到實際作用。 如果我們將Maven與您可能所在的公司進行比較,則生命周期將是董事會,構建階段是中層管理人員以及完成工作的工人的目標。
大多數構建階段都附帶有默認目標,例如,您可能已經猜到, 編譯器構建階段綁定到了compile:compile目標,同樣, 安裝構建階段也綁定到install:install目標。
您還可以使用POM文件中的<plugin>元素將您自己的目標綁定到階段,這可以用于覆蓋目標的默認行為或添加新目標和新行為。
關于目標 s最后要注意的一點是,它們通常與POM的包裝類型相關聯。 例如,這是有道理的,例如:editor:compile目標與jar和ejb打包相關聯,但就POM , war或ear包而言,這毫無意義。
閱讀本文時,您可能已經了解到,按照慣例,目標名稱包含冒號,而構建階段的名稱則不包含。 這使您可以在Maven命令行上指定目標,而不會將它們與構建階段混淆。 例如:
mvn compiler:compile…將執行compile:compile目標,該目標處于默認構建生命周期的編譯器構建階段。 而且,一點點混在一起…
mvn install tomcat:redeploy…將在默認的構建生命周期中執行直到安裝 (包括安裝 )的所有構建階段,然后執行Tomcat Mojo中的tomcat:redeploy目標。
那就是一英里高的鳥瞰Maven。
1 在字的UML感。
參考: Captain Debug's Blog博客中JCG合作伙伴 Roger Hughes 的Maven鳥瞰圖 。
翻譯自: https://www.javacodegeeks.com/2012/06/birdss-eye-view-of-maven.html
maven 父maven
總結
以上是生活随笔為你收集整理的maven 父maven_Maven的鸟瞰图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 菜花蛇有几种颜色(菜花蛇有几种颜色花纹)
- 下一篇: gta5电脑内存不足(电脑下gta5存储