前言:Ant是面向过程的构建工具,而Maven封装了构建的细节。这样的就使得Ant更加灵活,可是由于和过多的细节绑定,则可复用性什么都比较差、而且使用复杂。而Maven由于封装了细节,则可复用性较好,使用配置都相对简单,但是同时失去了灵活性。

        有的时候,我们有这种需求,使用Maven打包,可以要把这个打好的war包传输到远端的某台服务器上,或者是在构建过程中要做某些操作,而这个操作不方便用Maven处理。那怎么办?Maven的Ant插件就应用而生了。我们得感谢Maven强大的插件机制。以下就是简单步骤:

         第一步:在工程POM文件中配置:

<!-- ant插件 -->
     <plugin>
       <artifactId>maven-antrun-plugin</artifactId> 
       <version>1.7</version>
       <executions>  
         <execution>
         <id>package</id>
         <phase>package</phase>
         <goals>
          <goal>run</goal>
         </goals>
          <configuration>
            <tasks>
              <ant antfile="build.xml" target="run"></ant>
            </tasks>
          </configuration>
        </execution>
       </executions>
     </plugin>

        在以上的<tasks>标签里,也可以写ANT命令,不过为了不让Maven的POM中加入过多的ANT命令,这里单独把ANT放在文件里。要注意

        1)<phase>标签里的值必须和Maven的构建项目的生命周期相对应,比如这里的ANT命令就会在Maven打好包以后执行。也就是告诉Maven什么时候调用ANT命令。

        2)这里的<goal>的是run(这个我还没深入研究)。

        3)<ant>标签的antfile属性是ANT配置文件的路径,这里是相对路径。target属性是配置文件中要执行的target名称。

         第二步:在POM.XML同级目录建立build.xml文件,并写自己的ANT命令。如:

     

<?xml version="1.0" encoding="UTF-8"?>
        <project name="demo">
            <target name="run">
              <echo message="执行"></echo>
            </target>

         第三步:执行Maven的打包命令,这里不说了,可以自己上网查,或者是在Eclipse中右单击该文件,执行:“Maven package”命令。然后就可以看见Console里打印出“执行”这个信息。

         在这里,只是初步对Maven的ANT插件的整合,其中也可以在ANT的配置文件中引用Maven属性等,以及其他的ANT命令,有些命令是和Maven的构建生命周期绑定的,对这方面有需要的可以研究下以下这篇文章:官方关于该插件的文章,欢迎各位拍砖、交流。