Maven的鸟瞰图
如果您曾經閱讀過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
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: gt赛车6电脑板(GT赛车PC)
- 下一篇: Maven最佳实践