1 <build> 2 <plugins> 3 <plugin> 4 <artifactId>exec-maven-plugin</artifactId> 5 <groupId>org.codehaus.mojo</groupId> 6 <executions> 7 <execution> 8 <id>uncompress</id> 9 <phase>install</phase> 10 <goals> 11 <goal>exec</goal> 12 </goals> 13 <configuration> 14 <executable>${basedir}/uncompress.sh</executable> 15 </configuration> 16 </execution> 17 </executions> 18 </plugin> 19 </plugins> 20 </build>
1. 這里需要理解maven中幾個概念
a.maven的生命周期
maven的生命周期主要有3套,分別是clean、default、site,clean主要用來清理項目,default用來構建項目,site用來建立項目站點。每個生命周期又包含一些階段,這里就不列出了。
當我們在命令行中執行mvn clean install時,該命令調用了clean生命周期的clean階段和default生命周期的install階段
b.插件綁定
maven的核心僅僅定義了抽象的生命周期,具體的任務交給插件來完成,而maven的生命周期與插件互相綁定,具體而言,應該是生命周期的階段與插件的目標互相綁定,以完成某個具體的構建任務
現在來看我們上面的例子,我們在第10行開始定義了這個插件的目標,並且在第9行指定了default生命周期的install階段,這里的意思就是說在default生命周期的install階段,我們將執行插件的exec目標,也就是執行我們在14行指定的腳本。
生命周期的某一個階段可以綁定很多插件的目標,這些目標的執行順序按照定義的順序來執行
一些屬性
${basedir}表示項目根目錄,即包含pom.xml文件的目錄