假设我从网络驱动器复制一些带有ant的文件:
<copy todir="." verbose="true">
<fileset dir="some_directory" includes="**/*"/>
</copy>
Run Code Online (Sandbox Code Playgroud)
假设我先测试文件夹是否存在.
<available file="${dir.local}" property="dir.exists"/>
Run Code Online (Sandbox Code Playgroud)
如果我的计算机上有该文件夹,我只想复制修改过的文件.有没有办法保持up2date与服务器上存在的版本?
编辑:我知道同步任务.问题是,如果我的本地文件被修改,同步不会复制它们.有没有办法解决这种行为,还是有另外一项任务可以做到这一点?
EDIT2:这是根据彼得的建议修改的代码:
<target name="copy">
<echo>${dir.remote}</echo>
<copy todir="${dir.local}" verbose="true" overwrite="true"
preservelastmodified="true">
<fileset dir="${dir.remote}">
<include name="**/*"/>
</fileset>
</copy>
</target>
Run Code Online (Sandbox Code Playgroud)
然而,这会复制所有文件.它不仅取代了修改后的.
小智 7
从Apache Ant 1.6开始,您可以使用同步任务来同步文件夹.例:
<sync todir="site">
<fileset dir="genereted-site" />
</sync>
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请访问http://ant.apache.org/manual/Tasks/sync.html.
| 归档时间: |
|
| 查看次数: |
4237 次 |
| 最近记录: |