1. 程式人生 > >理解maven的核心概念

理解maven的核心概念

Maven中定義的工程週期和階段只是抽象的概念,不涉及具體的功能。 具體的功能由外掛(Plugin)實現。一個外掛可以實現多個目標(Goal)。

為了解耦外掛的功能和工程階段,實現高度的可配置性,maven規定外掛只是實現目標的功能, 通過配置來決定在哪個階段執行(Execution)哪些目標操作。 甚至可以把一個Goal繫結到多個Phase,以實現複用。

maven內建了一些預設的外掛,並根據不同的工程packing型別在各個phase中預設綁定了一些goal。 下表中列出default生命週期中各階段預設繫結的goal,其中goal按照管理使用pluginname:goalname的方式標記:

Pahse Plugin:Goal
process-resources resources:resources
compile compiler:compile
process-test-resources resources:testResources
test-compile compiler:testCompile
test surefire:test
package ejb:ejb/ejb3:ejb3/jar:jar/par:par/rar:rar/war:war
install install:install
deploy deploy:deploy

最後需要說明的是,maven的外掛是一種packaging型別為maven-plugin的project, 可以使用maven project的依賴,配置外掛等等一切特性。