1. 程式人生 > >ant支援svn外掛下載程式碼

ant支援svn外掛下載程式碼

svn屬於第三方任務,所以使用之前第一要下載svn外掛包,地址:http://subclipse.tigris.org/files/documents/906/49042/svnant-1.3.1.zip,下載svnant-1.3.1.zip後解壓將其中的.jar包拷貝到ant的lib目錄下,一般有包含:svnant.jar,svnClientAdapter.jar,svnjavahl.jar,svnkit.jar 第二:使用taskdef宣告第三方任務,才能使用 完整程式碼如下:本人親測 <?xml version="1.0" ?> <project name="svn" default="checkout">
<!-- define the svn task--> <path id="svn.lib"> <fileset dir="C:\apache-ant-1.9.4\lib"> <include name="svn*.jar" /> </fileset> </path> <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="svn.lib" /> <!--svn checkout SQL code-->
<target name="checkout" depends="clean">   <svn username="123" password="123" javahl="true">   <export srcurl="http://10.10.5.52/SDP/21.FKOTTADAPTER/trunk/FKOttAdapter/SQL" revision="HEAD" force="true" destPath="E:\AntProject\SQL" />   </svn> </target>   <!-- delete destdir before svncheckout -->
<target name="clean"> <delete dir="E:\AntProject\SQL"/> <mkdir dir="E:\AntProject\SQL" /> </target> </project> 關於使用export和checkout注意點:export時,必須是srcurl,而checkout是url;而export時候要求目標目錄是不存在的,當然你可以使用force,而co不在乎。其實很好理解,export後無法區分本地檔案和svn檔案,所以要求純淨的目錄 順便說下taskdef宣告第三方任務的方法 第一種如上所示 <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="svn.lib" /> 第二種: 定義task.properties檔案,在該檔案將任務名稱與類名對應 如:document=xdoclet.doc.DocumentDocletTask 在build.xml只需要指定該檔案和類所在路徑 <taskdef file="task.properties"  classpath="${xdoclet.jar}" /> 有時候第三方任務提供了task.properties檔案,你就不需要再寫task.properties了,直接在build.xml中引用