在使用ant的时候,有时用
<target name="war.import" depends="svn.task,
war.name">
<echo>A: ${war.name}</echo>
</target>
有时用
<target name="war.import" depends="svn.task">
<antcall target="war.name"/>
<echo>B: ${war.name}</echo>
</target>
两种方法有什么不同呢?
通常来看,感觉没什么不同,其实是有不同的。只不过差异在一些不太明显的地方。
如果单纯的是两个过程调用,就是没有区别的。区别在于,用depends的方式调用,那么war.name任务中的设置或者修改的属性值可以在后面的任务中使用,而用antcall的调用就不可以。
如:如war.name任务如下:
<target name="war.name">
<echo>
task war.name need to pass 4 parameters:
project.name
release.version
deploy.type
</echo>
<property name="war.name" value="${project.name}-${release.version}_${deploy.type}-${today}-${build.number}.war"/>
<property name="war.file" value="${bin.dir}/${war.name}"/>
<property name="war.md5.name" value="${war.name}.MD5"/>
<property name="war.md5.file" value="${bin.dir}/${war.md5.name}"/>
<echo>
|-------------------------------------------------------------------------------|
war.name : ${war.name}
war.file : ${war.file}
war.md5.name : ${war.md5.name}
war.md5.file : ${war.md5.file}
|-------------------------------------------------------------------------------|
</echo>
</target>
那么第一种调用方法,就能正确取得war.name属性的值,而第二种调用就不能。所以建议尽可能的使用depends进行任务调用。
区别在细微的地方,不过也值得注意。
|----------------------------------------------------------------------------------------|
版权声明 版权所有 @zhyiwww
引用请注明来源 http://www.blogjava.net/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2012-04-10 09:27
zhyiwww 阅读(8378)
评论(0) 编辑 收藏 所属分类:
j2ee