ant脚本学习

主要是流程+标签。

用的比较多的为文件操作、编译、打包、命令操作、自定义任务。

流程类似<target name="copy" depends="init">就是做这个"copy"任务之前要先做"init",而且depends的只做一遍。

编译与打包:
<property name="srcDir" location="src"/>
	<property name="buildDir" location="build"/>
	<property name="distDir" location="dist"/>
<target name="compile" depends="init">
		<javac srcdir="${srcDir}" destdir="${buildDir}"/>
	</target>
	
	<target name="dist" depends="compile">
		<jar destfile="${distDir}/package-${DSTAMP}.jar" basedir="${buildDir}">
			<manifest>
				<attribute name="built-by" value="${user.name}"/>
				<attribute name="main-class" value="test.json.stringTest"/>
			</manifest>
		</jar>
		<jar destfile="${distDir}/package-src-${DSTAMP}.jar" basedir="${srcDir}"/>
	</target>

注意classpath与包名,main入口等等。

文件操作:

<property name="srcFile" location="\\192.168.1.1\1.4_20110811-20795-20795\xxx.jar"/>
	<property name="distFile" location="dist\map-dev-src.jar"/>

	<target name="dist">
		<echo message="正在拷贝Jar文件到${distFile}中..." />
		<copy file="${srcFile}" tofile="${distFile}"/> 
		<echo message="拷贝完成" />
	</target>


使用svnant.jar的SVN升级:

<property name="project" location="E:\testsvn"/>
	<property name="remoteurl" value="http://server:8080/svn/xxx"/>
	<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpath="svnant.jar"/>
	<target name="init" >
		<echo message="updating" />
		<svn username="xxx" password="xxx">
			<update dir="${project}"/>
			<!--<checkout url="${remoteurl}" revision="HEAD" destPath="e:/testsvn" />-->
		</svn>
	</target>


自定义任务:

<property name="parentFolder" location="\\xxx"/>
	
	<taskdef name="OwnTask" classname="GetLatestFolderName" classpath="."/>
	
	<target name="init">
		<OwnTask property="latestFolder" parentFolder="${parentFolder}"/>
	</target>
	
	<target name="dist" depends="init">
		<echo message="Process Complete!"/>
		<echo message="Latest folder is ${latestFolder}"/>
	</target>

这里比较有用的是自定义任务的latestFolder这个property,是从自定义任务中设置出来的返回值,在自定义类中加上getProject().setNewProperty(this.propertyName, folderName);

命令行操作:
<target name="copy" depends="init">
		<exec executable="TortoiseProc"> 
			<arg value="/command:update"/>
			<arg value="/path:&quot;\\xxx\Tomcat5.0\webapps\&quot;"/>  
			<arg value="/closeonend:1"/>
		</exec>
	</target>




ANT很好的入门教程:Ant使用指南.pdf  网上搜搜很多能下的  基础操作都全了  其实也不需要ant做很复杂的操作, 这些已经够了。

你可能感兴趣的:(ant,SVN,自定义任务)