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文件的目录