ant支援svn外掛下載程式碼
阿新 • • 發佈:2019-01-07
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中引用