星期三, 十月 15, 2008

用ant同步文件夹

经常在多台电脑上工作,有些文件会需要同步。
对于一般的工作文件,用版本控制系统可以完成,我的源代码都是用bazaar来管理,以前使用SVN的。

有些文件我不纳入版本管理,比如我的maven仓库,我没有服务器,所以没有maven代理。这些jar包我不想把它纳入版本控制。换机器的时候我也不希望再从网上下载一次。以前我都是把我的.m2文件夹拷贝到移动硬盘,再从移动硬盘拷到要用的机器上。
XP的拷贝实在不适合拷贝大量的小文件,而且每次都覆盖也没有必要。所以想用增量拷贝工具。想到了rsync以前用过,好像在路径名太长是会出问题,而且cygwin的rsync对于中日英混合的文件名处理也会出问题。

由于一直用Java开发,想到ant有一个sync的任务,反正ant在我的每台机器上都是必备的。
所以利用它来同步我的文件,应该是个理想的方案。

这是我的build文件


<?xml version="1.0" encoding="UTF-8"?>

<project name="nexus" default="sync">



<target name="check" description="check dest property." >

<condition property="run">

<and>

<isset property="dest" />

</and>

</condition>

</target>

<target name="usage" depends="check" description="usage of this build file" unless="run">

<echo>

ant -Ddest=&lt;destPath&gt;

</echo>

</target>

<target name="sync" depends="usage" if="run" description="Sync files between usb disk">

<echo message="sync to ${dest}" />

<sync todir="${dest}" verbose="true" granularity="500">

<fileset dir="."/>

</sync>

</target>

</project>

没有评论:

发表评论