Ant 在执行cvs签出时覆盖现有文件
我有一个Ant脚本,每当需要部署应用程序时,它都会执行CVS-checkout。 理想的方法是先删除现有的本地代码,然后进行签出,但我似乎无法删除项目,因为我的构建文件也是项目的一部分。 因此,我想进行一次签出,在这里,我现有的文件将被存储库中的文件替换。 有没有办法强制cvs签出,从而覆盖现有文件 我的构建目标看起来像Ant 在执行cvs签出时覆盖现有文件,ant,cvs,Ant,Cvs,我有一个Ant脚本,每当需要部署应用程序时,它都会执行CVS-checkout。 理想的方法是先删除现有的本地代码,然后进行签出,但我似乎无法删除项目,因为我的构建文件也是项目的一部分。 因此,我想进行一次签出,在这里,我现有的文件将被存储库中的文件替换。 有没有办法强制cvs签出,从而覆盖现有文件 我的构建目标看起来像 <target name="deploy.branch" depends="checkPropertyForBranch" if="branchPropertyExist
<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
是。/
ie“项目”
将构建脚本检查到项目中,那么您可以删除源项目并进行签出。我认为比强制cvs签出更好的方法是在签出之前删除文件。您可以使用
任务并排除不应删除的文件。试试这个:
<project name="cvs.test">
<dirname property="base.dir" file="${ant.file.cvs.test}"/>
<target name="cvs.checkout" depends="clean">
<!-- here is the checkout -->
</target>
<target name="clean">
<delete dir="${base.dir}">
<exclude name="build.xml"/>
</delete>
</target>
</project>
作为签出目标的一部分,我以前确实尝试过这个方法,并且它只有在签出目标运行时才能正常工作,也就是说,它首先删除所有文件,然后进行签出。但当整个过程运行时,ie deploy没有显示“无法删除目录”,我也尝试了一些delete的变体,因为我认为可能是cvs delete标记。我尝试了“”,该命令作为“rm-rf.././”存储在属性文件中。但是这两个命令都会执行部分删除并终止生成,并出现一个错误。您可以向我们显示您的项目目录的生成和结构吗?您是否尝试在签出.branch
之前调用clean
任务?成功了!!。。。似乎我在删除build.properties文件时没有排除build.properties文件。my build.xml已经是代码的一部分,并且它向您检查了删除文件所需的权限?是的,当我运行签出目标时,它工作得很好(删除和合并)。但是,当运行部署目标,而部署目标又运行签出目标时,它就会失败。