以下引用官方的介绍http://maven.apache.org/plugins/maven-antrun-plugin/

一、什么是maven-antrun-plugin?

该插件提供从Maven内运行Ant任务的功能。您甚至可以将您的Ant脚本嵌入POM!

这个插件不是提供污染POM的手段意图,因此它鼓励所有Ant任务移动到build.xml文件并使用Ant的POM的<ant/> task调用它(或者说所有在build.xml文件的Ant任务移动到POM中,并使用<ant/> task调用它)。

这个插件的主要目的之一是方便从Ant基础项目迁移到Maven。某些项目可能无法迁移,因为它们依赖于默认情况下Maven不提供的自定义构建功能。

二、坐标

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>

三、简单使用,参考官网http://maven.apache.org/plugins/maven-antrun-plugin/usage.html

<project>
[...]
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase> <!-- Maven的生命周期阶段 --> </phase>
<configuration>
<target> <!--
将任务Ant任务放在这里,还可以在这里添加一个build.xml文件
--> </target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>

当然,如上所示的配置其实还少了几个属性,不过这不影响运行,因为默认是继承超级POM的。

提示:

1、Maven的生命周期阶段参考:http://www.cnblogs.com/EasonJim/p/6816340.html

2、在<target>中的标签只有搞过Ant集成的才会比较熟悉,如果想要使用其中的标签,参考官方提供的文档:http://ant.apache.org/manual/tasksoverview.html

以下将展示官方实际项目上的POM:

http://maven.apache.org/plugins/maven-antrun-plugin/examples/classpaths.html

http://maven.apache.org/plugins/maven-antrun-plugin/examples/tasksAttributes.html

http://maven.apache.org/plugins/maven-antrun-plugin/examples/customTasks.html

<project>
<modelVersion>4.0.0</modelVersion>
<artifactId>my-test-app</artifactId>
<groupId>my-test-group</groupId>
<version>1.0-SNAPSHOT</version> <build>
<plugins> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<configuration>
<target>
<property name="compile_classpath" refid="maven.compile.classpath"/>
<property name="runtime_classpath" refid="maven.runtime.classpath"/>
<property name="test_classpath" refid="maven.test.classpath"/>
<property name="plugin_classpath" refid="maven.plugin.classpath"/> <echo message="compile classpath: ${compile_classpath}"/>
<echo message="runtime classpath: ${runtime_classpath}"/>
<echo message="test classpath: ${test_classpath}"/>
<echo message="plugin classpath: ${plugin_classpath}"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

注意:<id>为唯一的标识,可以是任意。

四、Ant插件只有一个目标(goal)

既:antrun:run,参考:http://maven.apache.org/plugins/maven-antrun-plugin/run-mojo.html

五、其它Ant集成例子

参考:http://maven.apache.org/plugins/maven-antrun-plugin/tasks/tasks.html

总结:

1、简单的说这个Ant插件就是为了方便把之前在Ant集成的任务迁移到Maven中去、

2、在Maven中的<target>中可以很方便的使用Ant的标签。

3、通过<phase>可以很方便的指定Maven的生命周期。并且指定生命周期之后,可以在生命周期运行时直接触发<target>中的任务。

05-21 19:01