<?xml version="1.0" encoding="UTF-8"?>
<!-- Sample build file used to retrieve svnant's sources -->
<!-- project name="svn-test" basedir="." default="checkoutThis" -->
  <project name="memberautobuild" default="member" basedir="./http://www.cnblogs.com/../">
    <tstamp>
       <format property="TODAY" pattern="yyyyMMdd" locale="en"/>
    </tstamp>
  
  <!--  all properties are in build.properties --> 
  <!--<property file="build.properties"/> -->
<property name="ant.dir" value="E:\ant\bin" />
  <property name="svnant.version" value="1.0.3" />
  <!--属性设置 -->
	<property name="buildversion" value="xxx"/>
	<property name="work.dir" value="xxx" />
	<property name="src.dir" value="${work.dir}"/>
	<property name="publish.dir" value="${basedir}\${buildversion}"/>
	<property name="build.dir" value="${work.dir}"/>
	<property name="devenv.dir" value="E:\xxx\Microsoft Visual Studio 10.0\Common7\IDE"/>
	<property name="publishfile" value="${buildversion}_${TODAY}.zip" />
	<property name="svn.url" value="xxxx"/>
   
  <!-- path to the svnant libraries. Usually they will be located in ANT_HOME/lib -->
  <path id="project.classpath" >
    <pathelement location="${ant.dir}/lib/svnjavahl.jar"/>
    <pathelement location="${ant.dir}/lib/svnClientAdapter.jar"/>
    <pathelement location="${ant.dir}/lib/svnant.jar"/>
  </path>  
  
  <!-- load the svn task -->
  <taskdef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="project.classpath"/>
  
  <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask">
    <classpath refid="project.classpath"/>
	</taskdef>
 
 <!--Check out最新代码 -->
  <target name="checkout" >
  	<mkdir dir="src_member"/>
    <svn svnkit="true" username="xxx" password="xxx">
      <checkout url="${svn.url}" revision="HEAD" destPath="src_member" />
    </svn>
  </target>   
  	
	<!--提交构建版本至构svn库 -->
	<target name="submit">
		<echo message="submit the project to svn  ##########################################################################################################"/>
	 	<svn svnkit="true" username="xxx" password="xxx" >
			<import path="${build.dir}\${publishfile}" url="${svn.url}/02执行程序/${publishfile}" message="import ${build.version}" />
		</svn>
	</target>
	
	<!--更新工作目录 -->
	<target name="update">
		<echo message="update the source code"/>
	 	<svn svnkit="true" username="xxx" password="xxx" >
			<update dir="${work.dir}">
			</update>
		</svn>
	</target>
	
	<!-- 提交代码 -->
	<target name="commit">
		<echo message="commit the zip file to svn"/>
	 <svn svnkit="true" username="xxx" password="xxx" >
			<commit dir="${build.dir}" message="commit">
			</commit>
		</svn>
	</target>
	
	<!--删除SVN对应文件 -->
	<target name="delete">
	   <echo message="delete file from svn"/>
	 <svn svnkit="true" username="xxx" password="xxx" >
			<delete url="${svn.url}/02执行程序/${publishfile}" message="delete">
			</delete>
		</svn>
	</target>
	
	<target name="version" >
		<echo message="${svnant.version}" />
	</target>

	
	
	<!--构建过程 -->
	<echo message="Start auto building #########################################################################################################"/>
	<target name="xxx" depends="update,compile-member,publish,submit"/>
	<!--<target name="xxx" depends="submit"/>-->
	
	<!--清除相关目录 -->
	<target name="clean"> 
    <delete dir="src_member"/>  
		<echo>Deleteing: ${publish.dir}</echo>
		<delete dir="${publish.dir}"/>
		<echo>Making: ${publish.dir}</echo>
		<mkdir dir="${publish.dir}"/>
	</target>
	
	<!--编译项目程序 -->
	<target name="compile-member">
		<exec executable="${devenv.dir}\devenv.com">
			<arg value="${src.dir}\ClientMgr\ClientMgr.Speical\ClientMgr.Speical.csproj"/>
			<arg value="/build"/>
		</exec>				
	</target>

	<target name="publish">
		<echo message="Publish the project ##########################################################################################################"/>
	<!--复制文件交互应用前台可执行程序到发布目录 -->
		<copy todir="${publish.dir}/02运行程序/01前台">
			<fileset dir="${src.dir}/CAFX">
			   <exclude name="*.svn"/>
			   <exclude name="*.con"/>
			   <exclude name="*.log"/>
			</fileset>
		</copy>
		
		<zip destfile="${publish.dir}/02运行程序/01前台/${publishfile}"
				 basedir="${publish.dir}/02运行程序/01前台"
				 excludes="**/*.scc,**/*.lib,**/*.exp,**/*.ilk"	/>
	  <copy file="${publish.dir}/02运行程序/01前台/${publishfile}" todir="${build.dir}" />	
	  <delete dir="${publish.dir}/02运行程序/01前台"/>
	</target> 
	
</project>