maven-anturn-plugin插件为maven提供了ant功能,它可以使旧项目的配置操作在新项目得以重用。
该插件主要有2中执行ant操作的方法:
1.直接在插件中配置编写,例如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<configuration>
<target>
<echo message="********************copy profile propertie file *************************" />
<copy file="webContent/WEB-INF/temporary-lib/dhcc-user-bundle-1.0.7.jar"
tofile="webContent/WEB-INF/lib/dhcc-user-bundle-1.0.7.jar"
overwrite="true" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
上面的操作在项目编译的时候,复制了webContent/WEB-INF/temporary-lib/dhcc-user-bundle-1.0.7.jar文件到webContent/WEB-INF/lib/dhcc-user-bundle-1.0.7.jar。
2.调用ant脚本,即build.xml文件,并执行,例如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>ant-magic</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<property name="compile_classpath" refid="maven.compile.classpath" />
<!-- <property name="outputDir" value="${project.build.outputDirectory}"/>
<property name="sourceDir" value="${project.build.sourceDirectory}" /> -->
<ant antfile="${basedir}/build.xml" target="prepare-package-clean" />
</tasks>
</configuration>
</execution>
<execution>
<id>ant-magic2</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<property name="compile_classpath" refid="maven.compile.classpath" />
<ant antfile="${basedir}/build.xml" target="package-clean" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project default="prepare-package-clean" basedir=".">
<description>
dhcc build file
</description>
<property name="srcDir" location="src/main/java" />
<property name="webDir" location="webContent" />
<property name="lib.dir" location="${webDir}/WEB-INF/lib" />
<property name="distDir" location="${webDir}" />
<property name="dist.lib" location="${distDir}/WEB-INF/lib" />
<property name="dist.classes" location="${distDir}/WEB-INF/classes" />
<property name="targetDir" location="${distDir}/target" />
<target name="prepare-package-clean">
<echo message="clean lib jar and class start====" />
<delete dir="${dist.classes}" />
<delete dir="${dist.lib}\" />
<echo message="clean lib jar and class end====" />
</target>
<target name="package-clean">
<echo message="clean jersey and jar and other jar start =====" />
<delete file="${dist.lib}\jersey-core-1.17.1.jar" />
<delete file="${dist.lib}\jersey-server-1.17.1.jar" />
<delete file="${dist.lib}\jersey-servlet-1.17.1.jar" />
<delete file="${dist.lib}\javassist-3.11.0.GA.jar" />
<delete file="${dist.lib}\xml-apis-1.0.b2.jar" />
<delete file="${dist.lib}\jackson-core-asl-1.9.11.jar" />
<delete file="${dist.lib}\jackson-mapper-asl-1.9.11.jar" />
<delete file="${dist.lib}\c3p0-0.9.1.1.jar" />
<delete file="${dist.lib}\commons-fileupload-1.3.jar" />
<delete file="${dist.lib}\jersey-core-1.18.jar" />
<delete file="${dist.lib}\jersey-server-1.18.jar" />
<delete file="${dist.lib}\jersey-servlet-1.18.jar" />
<delete file="${dist.lib}\javassist-3.11.0.GA.jar" />
<echo message="clean jersey and jar and other jar end =====" />
</target>
<target name="init" depends="prepare-package-clean">
<tstamp />
<echo message="distDir ${distDir}" />
<echo message="dist.classes dir ${dist.classes}" />
<echo message="dist.lib ${dist.lib}" />
</target>
<target name="compile" depends="init">
<echo message="compile java ================== " />
<echo message="dist.lib:${dist.lib}" />
<mkdir dir="${dist.lib}" />
<mkdir dir="${dist.classes}" />
<javac encoding="utf-8" srcdir="${srcDir}" destdir="${dist.classes}" >
<classpath refid="classpath"/>
</javac>
</target>
</project>
上面定义了2个节点(execution),分别在准备打包时执行prepare-package-clean任务,在打包的时候执行package-clean任务。
id:节点名
phase:任务执行时间,例如上面则是在执行maven package时运行任务
goal:只能为run,即运行时
configuration:任务配置
property:属性
echo:注释
ant:引入ant的脚本