理解maven的核心概念
阿新 • • 發佈:2019-02-02
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的依賴,配置外掛等等一切特性。