以下是我的情况:
Server
我的CruiseControl部署脚本的最后一步是在"demos“文件夹中将构建复制到Apache的htdocs文件夹中(我相信这被称为”热部署“?)
一切都是好的和花哨的,除了有时(不常见,但它发生了足够多,它困扰我),演示文件夹不包含我构建的文件!旧的不见了,新的不见了,就这样消失了。
我的直觉是,如果我试图覆盖一个文件,而网络上的人正在下载它,Apache只是在下载完成后删除它?我不知道,这没有任何意义。
我到处找都找不到提示.让我们看看这个StackOverflow社区到底有多好!:)
下面是我的ANT脚本中的“部署”目标:
<target name="deploy" depends="revertVersionFile">
<copy todir="${deploy.dir}">
<fileset dir="${bin.dir}"/>
</copy>
<copy todir="${deploy.dir}">
<fileset dir="${bin.dir}"/>
</copy>
<available file="${deploy.dir}/MockupsLive.swf" property="mockupsFile"/>
<fail unless="mockupsFile" message="MockupsLive doesn't exist!"/>
<available file="${deploy.dir}/skins/sketch/sketch.swf" property="skinFile"/>
<fail unless="skinFile" message="sketch.swf doesn't exist!"/>
</target> 发布于 2008-10-03 16:02:53
我建议在复制新文件之前创建旧文件的备份。将旧文件命名为替换时的时间戳。这样做,然后在下次目录失败时查看目录中的内容,很可能会为您提供下一步查找位置的线索。
发布于 2008-09-25 23:01:15
Apache不会删除目录的内容。我猜,脚本中有些东西是删除内容的。脚本是否创建任何类型的备份?也许它会将内容移动到备份文件夹中,然后复制生成。
您可以向该文件夹添加一些安全性,以防止其删除。也许这样会出现一个错误,让您知道什么是方便地删除目录。)我猜是在剧本里。
发布于 2008-10-06 14:35:31
我认为问题可能在CruiseControl文件的某个地方。最有可能的情况是,CruiseControl进程正在某个地方整理文件,但可能是由于文件上的锁(可能是Apache的锁),它无法将文件写回该文件夹。
无论哪种方式,由于“部署”似乎是最后一步,前面的步骤可能清除目录,部署失败,使您的文件夹在步骤的末尾为空。
https://stackoverflow.com/questions/131923
复制相似问题