我有一个Ant脚本,它在每次需要部署应用程序时执行CVS- checkout。执行此操作的理想方法是先删除现有的本地代码,然后执行签出,但我似乎无法删除项目,因为我的构建文件也是其中的一部分。因此,我想要签出我的现有文件将被存储库中的文件替换。有没有办法强制执行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是../ ie "project"
发布于 2013-03-22 15:12:21
我认为比强制cvs签出更好的做法是在签出前删除文件。您可以使用<delete/>任务并排除不应删除的文件。试试这个:
<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>发布于 2013-03-22 15:11:37
将构建脚本签入到项目中,然后可以删除源项目并签出。
https://stackoverflow.com/questions/15564669
复制相似问题