的策略这是否可以使用UpToDate任务来设置属性。 只需在执行uptodate检查之后将war文件复制到war.bak,为下次运行做准备。
另一种策略(可能更好)是使用UpToDate任务来确定是否必须生成战争,设置属性,例如myuptodateproperty
。然后调用你的战争生成目标,并确保它具有约束条件,以便在不需要时重新生成战争。
可以使用的东西中的线(未经测试的代码,可能需要一些工作):
<target name="war" depends="clean,fillbuildanddist,build">
<mkdir dir="${dist}" />
<uptodate targetfile="${dist}/${proj_name}.war" property="uptodatewar">
<fileset dir="${build}" />
</uptodate>
<antcall target="makewar" />
</target>
<target name="makewar" unless="uptodatewar">
<jar destfile="${dist}/${proj_name}.war" basedir="${build}" />
</target>
有了这个,物业uptodatewar
应设置为true
只有在战争并不需要重建,因此在这种情况下只会调用jar
任务。在依赖war
目标的目标中,只有战争是新的时,才可以使用uptodatewar
执行任务。
似乎有一些代码在这里失踪,Gomathi。 – 2010-05-26 19:14:17
完成我的回答。顺便说一句,你应该使用['war'](http://ant.apache.org/manual/CoreTasks/war.html)任务而不是'jar':'war'是'jar'的扩展。轻松处理WEB_INF目录 – tonio 2010-05-26 21:50:48
@Banang。代码在那里,只是没有正确逃脱。我前一段时间抱怨说,没有编辑权限的人应该有简单的方法来查看问题来源。 – 2010-05-27 14:56:31