我有一个 Ant 脚本,它从 CVS 中 check out 一个项目,然后构建并部署它。要求是脚本应该是“scripts”文件夹中代码的一部分,并且每次 checkout 时都会覆盖该文件。当构建完成而无需进行 CVS checkout 时,一切正常。 我的代码片段是
<target name="deploy.main" depends="checkProperty" if="propertyExist">
<echo message="${release.number}"/>
<sequential>
<parallel>
<antcall target="tag.branch"/>
<antcall target="checkout.main"/>
</parallel>
<antcall target="stopJboss" />
<sleep seconds="10" />
<antcall target="replaceTag"/>
<antcall target="deploy" />
<antcall target="moveConfigFiles" />
<antcall target="promote"/>
<antcall target="stopRemoteJboss"/>
<parallel>
<antcall target="startJboss" />
<antcall target="startRemoteJboss"/>
</parallel>
</sequential>
</target>
在 check out 过程中,该文件总是被新文件覆盖,ant 是否会在开始时立即读取整个文件并将其保留在内存中?或者它是否尝试在新文件中查找内容?
最佳答案
任何(以及许多工具,如 make)都使用依赖信息的有向无环图。他们一次性构建依赖信息读取文件。 (这样做是为了即使同一目标有多个依赖项,它也只执行一次)。一旦构建了图表,对“该”项目文件的修改将不会产生任何影响。
关于java - 执行 CVS checkout 后 Ant 脚本无法找到目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13492832/