在maven 中调用shell 命令

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

 

posted @ 2013-01-08 15:53  feiling  阅读(10619)  评论(0编辑  收藏  举报