使用phing部署代码

时间:2015-06-13 10:58:08

标签: php sync webdeploy phing

我想使用Phing将源文件夹中的文件同步到公共文件夹,但问题出在我使用

<copy todir="${libDir}">
        <fileset dir="${gitDir}">
            <include name="**"></include>
            <exclude name="public/**"/>
        </fileset>
</copy>

<filesync sourcedir="${gitDir}" destinationdir="${libDir}" verbose="true" checksum="true" />

脚本不会从$ {libDir}中删除$ {gitDir}中已不存在的文件。 我不想先删除孔目录,然后复制所有文件。它应该有效,但需要更多时间。 你知道我如何同步文件夹并删除不存在的文件吗?

2 个答案:

答案 0 :(得分:0)

我找到了决定。我只是使用linux命令:

<exec command="rsync -a --delete --exclude '.git' --exclude '.svn' ${gitDir} ${libDir}" checkreturn="true" />

答案 1 :(得分:0)

很容易陷入使用&#39; exec&#39;在Phing的任何地方使用本机操作系统工具。

Phing确实有一个rsync任务,它有一个&#39;删除&#39;参数。

  

使用rsync命令同步文件或目录。同步可以   在同一台服务器上或从远程服务器上完成。

<filesync  
  sourcedir="/var/www/development/project1"
  destinationdir="/var/www/html/project1"
  dryrun="true"
  itemizechanges="true"
  verbose="true"
  checksum="true"
  delete = "true" />

链接到phing docs FileSyncTask