有人可以用代码中的“if”、“and”、“not”和“istrue”的 Ant 条件属性示例来解释我吗?
我是 Ant 新手,需要帮助。
基本上我需要使用 FTP 下载文件。我有下载代码。但是在下载之前我需要检查的条件很少。
- 在下载之前检查 Downloadstatus 变量值(通常是它的真或假值”)
- 检查文件是否已下载或在路径中可用
- 如果两个条件都失败,则执行 FTP 下载代码。
提前致谢。
有人可以用代码中的“if”、“and”、“not”和“istrue”的 Ant 条件属性示例来解释我吗?
我是 Ant 新手,需要帮助。
基本上我需要使用 FTP 下载文件。我有下载代码。但是在下载之前我需要检查的条件很少。
提前致谢。
ant-contrib 是一个广泛使用的库,if/else/for/foreach 任务不仅使编写复杂的 ant 脚本变得更容易,它们还将使您的 ant 脚本更具可读性。
但是,既然你坚持:)
我过去处理此问题的方法是设置一个仅在设置属性 X 时执行的任务 A,并使任务 A 依赖于检查条件并设置属性 X 的某个任务 B(如果它们为真)。例如:
<target name="get-ftp-file" depends="check-need-ftp-file" if="ftp.call.required">
<ftp ... />
</target>
<target name="check-need-ftp-file">
<condition property="ftp.call.required">
<and>
<not>
<!-- Checks if Downloadstatusvariable variable is true -->
<istrue value="${Downloadstatusvariable}"/>
</not>
<not>
<!-- Checks if file is present in filesystem -->
<available file="${my.file}"/>
</not>
</and>
</condition>
</target>
编辑:
coolgokul,<and>
和<not>
任务是标准的逻辑运算符。<available>
如果文件存在于本地计算机上,则上述示例中的条件评估为真。但是我们只想在本地机器上不存在该文件时才下载该文件,因此我们将其包装在<not>
任务中。与${Downloadstatusvariable}
检查类似——我们想确保它不是真的,所以我们使用<istrue>
然后将其包装在<not>
.
最后,我们要确保变量不为真并且文件不存在,因此我们将这两个条件都包含在<and>
. 翻译成英文,我们问“Downloadstatusvariable 是否不正确,下载的文件是否不可用?”
推荐你阅读更多关于条件运算符@http ://ant.apache.org/manual/Tasks/conditions.html
希望有帮助。
标准 Ant 没有“if”任务,但您可以使用“condition”任务执行几乎任何您需要的条件逻辑。请参阅http://ant.apache.org/manual/Tasks/condition.html举一些例子。
在ant-contrib库中有一组附加任务,包括“if”任务,但我建议不要使用它,除非你真的需要,因为它会增加你的构建环境的复杂性。
您是否正在尝试使用Ant Contrib Task?. 如果您单击那里的链接,该文档会举例说明您可能希望通过每个任务实现的目标
一些相关的例子可能在这里:Steve J's Blog