gxh973121

博客园 首页 新随笔 联系 订阅 管理

要手工维护多个branch的代码有点麻烦,原先设想ftp的文件同步,后来觉得nant就够了,而且nant支持script后能做的事情更多了。

用nant原理很简单,daily build的机器从source control服务器获得最新的代码,编译、备份、压缩发布到http服务器。

然后每个branch的机器用nant备份旧代码,再用http服务器下载的新代码来替换掉旧代码。

最简单的例子。

<?xml version="1.0"?>

<project name="myproject" default="build" basedir=".">
 <property name="myproject.codefilename" value="code.zip" readonly="true" />
 <property name="myproject.codesourceurl" value="
http://myserver/code/code.zip" readonly="true" />
 <property name="myproject.zipfolder" value=".\temp" />
 <property name="myproject.applicationdir" value="C:\tempfolder" />
      <target name="clean">
         <delete>
              <fileset>
                  <include name="${myproject.codefilename}"/>
                  <include name="${myproject.zipfolder}/*.*"/>
                  <include name="${myproject.zipfolder}/**" />
              </fileset>
         </delete>
     </target>
    
     <target name="downloadcode" >
         <get src="${myproject.codesourceurl}" dest="${myproject.codefilename}">
             <credentials username="name" password="password" domain="domain" />
         </get>
        
         <unzip zipfile="${myproject.codefilename}" todir="${myproject.zipfolder}"/>
     </target>
       
     <target name="build" depends="downloadcode" >
         <copy todir="${myproject.applicationdir}" flatten="false" overwrite="true">
             <fileset basedir="${myproject.zipfolder}">
                 <include name="**" />
                 <exclude name="**/*.config" />
             </fileset>
         </copy>
        <call target="clean" />
     </target>
</project>

posted on 2005-04-08 09:19  gxh973121  阅读(369)  评论(0编辑  收藏  举报