我有一个Ant脚本,每次需要部署应用程序时都会执行CVS签出。 这样做的理想方法是首先删除现有的本地代码,然后执行结帐,但似乎无法删除项目,因为我的构建文件也是其中的一部分。 所以我想做一个结账,我的现有文件将被存储库中的文件替换。 有没有办法强制一个CVS签出会覆盖现有的文件?执行CVS签出时覆盖现有文件
我的构建目标看起来像
<target name="deploy.branch" depends="checkPropertyForBranch" if="branchPropertyExist">
<record name="log.txt" action="start" />
<echo message="${release.number}" />
<antcall target="tag.branch" />
<antcall target="checkout.branch" />
<antcall target="stopJboss" />
<antcall target="stopRemoteJboss" />
<sleep seconds="10" />
<antcall target="replaceTag" />
<antcall target="deploy" />
<antcall target="moveConfigFiles" />
<antcall target="promote" />
<parallel>
<antcall target="startJboss" />
<antcall target="startRemoteJboss" />
</parallel>
<antcall target="waitForWebSite" />
<antcall target="mailSuccessBranch" />
<record name="log.txt" action="stop" />
</target>
和结账的目标是像
<target name="checkout.branch">
<tstamp>
<format property="CHECKOUT" pattern="M/d/yyyy, hh:mm:SS a, z" locale="en" />
</tstamp>
<property name="checkout_start" value="${CHECKOUT}" />
<echo message="CVS checkout of BRANCH: ${branch_tag}" />
<!--<delete dir="${basedir}"/>-->
<cvspass cvsroot="cvsroot" password="*****" />
<cvs cvsroot="cvsroot" command="co -r ${branch_tag} project"dest="${checkout.dir}" />
</target>
的build.xml文件存在于project/scripts/build.xml
凡basedir
是../
即"project"
我之前尝试将它作为结帐目标的一部分,并且只有在结算目标运行时才能正常运行,即。它首先删除所有文件,然后进行结帐。但是,当整个事情运行,即部署,它不会说“无法删除目录” – Amit 2013-03-22 07:32:59
我也尝试了一些删除的变化,因为我想可能是它的CVS删除标记。我试过“ ”,命令以“rm -rf ../../”的形式存储在属性文件中。但是这两个命令都会执行部分删除并终止构建,并显示错误 –
Amit
2013-03-22 07:38:15
您能向我们展示您的项目目录的构建和结构吗? – pepuch 2013-03-22 07:59:02