我想优化我的scp部署,该部署当前将所有文件复制到仅复制自上次构建以来已更改的文件。我认为应该可以通过当前设置以某种方式,但我不知道如何做到这一点。
我有以下内容:
Project / src / blah / blah /< ----我正在编辑的文件(在这种情况下主要是PHP,一些静态资源)
Project / build< -------我有一个本地构建步骤,用于将文件复制到此处
我现在有一个scp任务,在需要时将所有Project / build复制到远程服务器。
是否有可能以某种方式利用这个额外的“构建”目录来实现我想要的东西 - 这意味着我只想在src / **和build / **之间上传“diff”。是否有可能以某种方式将其作为ANT中的文件集进行检索,然后scp呢?
我确实意识到这意味着如果我以某种方式删除/弄乱服务器上的文件,ANT脚本就不会注意到,但对我来说这没关系。
答案 0 :(得分:15)
您可以告诉ant scp
仅复制自上次推送以来使用modified
标记修改过的文件,如下所示:
<scp trust="true" sftp="true"... >
<fileset dir="${local.dir}">
<modified>
<param name="cache.cachefile" value="localdev.cache"/>
</modified>
</fileset>
</scp>
第一次使用它时,它将发送所有文件并将时间戳缓存在param
中声明的缓存文件中。之后,它只会发送修改过的。
在sftp模式下测试并验证。
答案 1 :(得分:0)