前言: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的构建生命周期绑定的,对这方面有需要的可以研究下以下这篇文章:官方关于该插件的文章,欢迎各位拍砖、交流。