ant中depends调用任务和antcall调用任务的区别

在使用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/,如需转载请自行联系原博主。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值