【发布时间】:2011-06-23 14:08:30
【问题描述】:
开始编写我的第一个构建脚本。我没有得到整个依赖的东西。当您的编译说 java 并且您需要目标文件来创建 jar 时,这种意义是有意义的。但是,如果您只是想验证任何不属于编译任务的文件或目录是否存在呢?
我已经能够使用 available,但我不知道如何将其结果用作任务的依赖项
【问题讨论】:
标签: ant build dependencies
开始编写我的第一个构建脚本。我没有得到整个依赖的东西。当您的编译说 java 并且您需要目标文件来创建 jar 时,这种意义是有意义的。但是,如果您只是想验证任何不属于编译任务的文件或目录是否存在呢?
我已经能够使用 available,但我不知道如何将其结果用作任务的依赖项
【问题讨论】:
标签: ant build dependencies
这样的:
<project name="foo-bar" basedir=".">
<target name="bar" depends="foo" unless="isAvailable">
<echo message="file is not available" />
</target>
<target name="foo">
<available file="${basedir}/path/to/file.java" property="isAvailable"/>
</target>
</project>
isAvailable 属性。 isAvailable 时才会执行并回显消息。您还可以将<available> 放在构建的“根级别”(在目标之外,作为<project> 的直接子级,它将在运行任何目标之前进行评估:
<project name="foo" basedir=".">
<available file="${basedir}/path/to/file.java" property="isAvailable"/>
<target name="bar" unless="isAvailable">
<echo message="file is not available" />
</target>
</project>
【讨论】:
unless 条件。如果您想为值显式设置“true”和“false”,您可以使用available 属性进行控制,但您需要检查您使用的是哪个版本的 ANT。旧版本不检查属性的值,它们只评估它是否设置为真/假,因此如果属性设置为“false”值,它将满足 true() 条件。我相信较新版本的 ANT 会将“false”识别为 false()。
如果要测试文件是否存在,请查看available
【讨论】: