maven 插件深入了解
阿新 • • 發佈:2017-05-24
stc 項目 int 本地 pac 目的 maven構建 cycle 聲明 的compile目標).
而該目標綁定了default生命周期的compile階段:
http://www.infoq.com/cn/news/2011/04/xxb-maven-7-plugin
http://www.infoq.com/cn/news/2011/05/xxb-maven-8-plugin
整體介紹:
http://blog.jobbole.com/107576/ 寫得相當不錯!
插件
生命周期的階段phase與插件的目標goal相互綁定, 用以完成實際的構建任務. 而對於插件本身, 為了能夠復用代碼,它往往能夠完成多個任務, 這些功能聚集在一個插件裏,每個功能就是一個目標.
如:$ mvn compiler:compile
: 冒號前是插件前綴, 後面是該插件目標(即: maven-compiler-plugin
而該目標綁定了default生命周期的compile階段:
內置綁定
為了能讓用戶幾乎不用任何配置就能使用Maven構建項目, Maven 默認為一些核心的生命周期綁定了插件目標, 當用戶通過命令調用生命周期階段時, 對應的插件目標就會執行相應的邏輯.
- clean生命周期階段綁定
生命周期階段 | 插件目標 |
---|---|
pre-clean | – |
clean | maven-clean-plugin:clean |
post-clean | – |
- default聲明周期階段綁定
生命周期階段 | 插件目標 | 執行任務 |
---|---|---|
process-resources | maven-resources-plugin:resources | 復制主資源文件到主輸出目錄 |
compile | maven-compiler-plugin:compile | 編譯主代碼到主輸出目錄 |
process-test-resources | maven-resources-plugin:testResources | 復制測試資源文件到測試輸出目錄 |
test-compile | maven-compiler-plugin:testCompile | 編譯測試代碼到測試輸出目錄 |
test | maven-surefire-plugin:test | 執行測試用例 |
package | maven-jar-plugin:jar | 打jar包 |
install | maven-install-plugin:install | 將項目輸出安裝到本地倉庫 |
deploy | maven-deploy-plugin:deploy | 將項目輸出部署到遠程倉庫 |
註: 上表只列出了打包方式為jar且擁有插件綁定關系的階段, 其他打包類型生命周期的默認綁定關系可參考: Built-in Lifecycle Bindings、Plugin Bindings for default Lifecycle Reference.
- site生命周期階段綁定
生命周期階段 | 插件目標 |
---|---|
pre-site | – |
site | maven-site-plugin:site |
post-site | – |
site-deploy | maven-site-plugin:deploy |
自定義綁定
除了內置綁定以外, 用戶還能夠自定義將某個插件目標綁定到生命周期的某個階段上. 如創建項目的源碼包, maven-source-plugin插件的jar-no-fork目標能夠將項目的主代碼打包成jar文件, 可以將其綁定到verify階段上:
總結
一個生命周期 有多個 階段, 一個階段 可能有多個 目標。
maven 插件深入了解