17-maven插件1

maven的任何行爲都是通過插件完成的,包括項目的清理、編譯、測試及打包等操作都有其對應的插件。每個插件都有一個或多個目標(可以當作方法),用戶可直接通過

命令行(將插件加到settings.xml文件中,可直接通過插件名稱及目標執行)運行這些插件目標或將插件目標綁定到maven的生命週期(可使用默認,也可自定義)。

插件主要分佈於apache、codehaus,還有googlecode、sourceforge和github,無法搜索到滿足需求的插件時,可自行開發maven插件。

 一、maven插件開發流程

創建一個maven-plugin項目:本身也是maven項目,特殊packaging必須是maven-plugin

爲插件編寫目標:每一個插件都包含一個或多個目標(方法),maven稱之爲mojo,提供一個或多個繼承子AbstractMojo的類

爲目標(mojo)提供配置點:提供可配置的參數

編寫代碼實現目標行爲:實現mojo的功能

處理錯誤及日誌:當發生異常時,根據情況控制maven的運行狀態,並將信息記錄到日誌中去

測試插件:編寫自動化的測試代碼測試行爲。

 二、編寫maven插件

1、引入maven-archetype-plugin插件,使用mvn archetype:generate創建maven工程

2、pom.xml文件中的packaging的值maven-plugin,且引入maven-plugin-api(插件開發必須的類)依賴。

3、創建一個mojo並實現其功能:

繼承AbstractMojo;實現execute()方法;提供@goal。

每個插件目標類或Mojo,都必須繼承子AbstractMojo並實現execute()方法,只有這樣maven才能識別該插件並執行execute(0方法

中的行爲。同時須在mojo上添加@goal標註(如@goal count表示一個目標爲count的mojo),標註自己目標名稱後,有了插件目標定義後,才能在項目中配置或命令行調用

 4、運行

mvn com.juvenxu.mvnbook:maven-loc-plugin:0.0.1-SANPSHOT:count

將插件的groupId引入到settings.xml文件中,運行命令如下:mvn loc:count 

三、maven插件測試

1、可以使用單元測試方式

2、將插件安裝到本地倉庫後,再找個項目測試該插件

3、使用maven-invoker-plugin插件測試插件進行測試,可用來在一組項目上執行maven,同時,支持BeanShell及Groovy等語言

該插件支持如下參數:

debug(boolean):構建時是否開啓debug

settingsFile(File):測試使用的settings.xml文件,默認本機環境倉庫

localRepositoryPath(File):測試使用本地倉庫

preBuildHookScript(String):構建之前運行的腳本

postBuildHookScript(String):構建後運行的腳本

<postBuildHookScript>validate.groovy</postBuildHookScript>

 

 

 

 

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