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

目录
相关文章
|
29天前
|
存储 缓存 编译器
【conan 入门教程】介绍 conanfile.py中的默认方法的作用
【conan 入门教程】介绍 conanfile.py中的默认方法的作用
79 0
|
8月前
|
前端开发
ant design中默认回调加入参数
ant design中默认回调加入参数
42 0
|
9月前
|
XML Java Android开发
Kotlin作用域函数let、with、run、apply、also
Kotlin作用域函数let、with、run、apply、also
65 0
|
Kotlin
Kotlin 作用域函数之let、with、run、also、apply的使用笔记
`Kotlin` 标准库包含几个函数,目的是在对象的上下文中执行代码块。**当对一个对象调用这样的函数并提供一个 `lambda` 表达式时,会形成一个临时作用域。在此作用域中,可以访问该对象而无需其名称。这些函数称为作用域函数**。共有以下五种:`let、run、with、apply 以及 also`。
139 0
|
Java
编译JDK:Javadoc.gmk:344: *** target pattern contains no ‘%‘。 停止
编译JDK:Javadoc.gmk:344: *** target pattern contains no ‘%‘。 停止
128 0
|
Dart
Dart之 对象call方法
Dart之 对象call方法
153 0
Dart之 对象call方法
|
缓存 JSON IDE
Clang Module 内部实现原理及源码分析
钉钉工程开始支持Swift,在适配clang module的过程中,遇到了各种各样的编译问题,为了弄清楚这些编译失败的真正原因,以及clang module的最佳实践,决定通过深入阅读clang module的实现代码,来解开这些谜团。
826 0
Clang Module 内部实现原理及源码分析
FastAPI(32)- Dependencies in path operation 通过路径操作装饰器的 dependencies 参数声明依赖
FastAPI(32)- Dependencies in path operation 通过路径操作装饰器的 dependencies 参数声明依赖
139 0
FastAPI(32)- Dependencies in path operation 通过路径操作装饰器的 dependencies 参数声明依赖
|
C++ Kotlin Windows
Kotlin标准函数run with let also apply的区别
Kotlin标准函数run with let also apply的区别
Kotlin标准函数run with let also apply的区别
【Groovy】Groovy 脚本调用 ( Groovy 类中调用 Groovy 脚本 | 参考 Script#evaluate 方法 | 创建 Binding 对象并设置 args 参数 )
【Groovy】Groovy 脚本调用 ( Groovy 类中调用 Groovy 脚本 | 参考 Script#evaluate 方法 | 创建 Binding 对象并设置 args 参数 )
350 0