Maven總結

我們都知道Maven本質上是一個插件框架,它的核心並不執行任何具體的構建任務,所有這些任務都交給插件來完成,例如編譯源代碼是由maven- compiler-plugin完成的。進一步說,每個任務對應了一個插件目標(goal),每個插件會有一個或者多個目標,例如maven- compiler-plugin的compile目標用來編譯位於src/main/java/目錄下的主源碼,testCompile目標用來編譯位於src/test/java/目錄下的測試源碼。

用戶可以通過兩種方式調用Maven插件目標。第一種方式是將插件目標與生命週期階段(lifecycle phase)綁定,這樣用戶在命令行只是輸入生命週期階段而已,例如Maven默認將maven-compiler-plugin的compile目標與 compile生命週期階段綁定,因此命令mvn compile實際上是先定位到compile這一生命週期階段,然後再根據綁定關係調用maven-compiler-plugin的compile目標。第二種方式是直接在命令行指定要執行的插件目標,例如mvn archetype:generate 就表示調用maven-archetype-plugin的generate目標,這種帶冒號的調用方式與生命週期無關。

認識上述Maven插件的基本概念能幫助你理解Maven的工作機制,不過要想更高效率地使用Maven,瞭解一些常用的插件還是很有必要的,這可 以幫助你避免一不小心重新發明輪子。多年來Maven社區積累了大量的經驗,並隨之形成了一個成熟的插件生態圈。Maven官方有兩個插件列表,第一個列 表的GroupId爲org.apache.maven.plugins,這裏的插件最爲成熟,具體地址爲:http://maven.apache.org/plugins/index.html。第二個列表的GroupId爲org.codehaus.mojo,這裏的插件沒有那麼核心,但也有不少十分有用,其地址爲:http://mojo.codehaus.org/plugins.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章