如果资源在运行时可用,则设置属性。此资源可以是文件、目录、类路径中的类或 JVM 系统资源。
注意:当类可以加载时,它在类路径中可用;即,它所依赖的所有类也必须在类路径中。
如果资源存在,则默认情况下属性值将设置为 true
;否则,不会设置属性。您可以通过指定 value 属性将值设置为除默认值以外的值。
通常,此任务用于设置属性,这些属性有助于避免目标执行依赖于系统参数。
属性 | 描述 | 必需 |
---|---|---|
property | 要设置的属性的名称。 | 是 |
value | 要设置属性的值。 | 否;默认为 true |
classname | 要在类路径中查找的类。 | 三个中的一个 |
file | 要查找的文件。 | |
resource | 要在 JVM 中查找的资源。 | |
classpath | 查找 classname 或 resource 时要使用的类路径。 | 否 |
filepath | 查找 file 时要使用的路径。 | 否 |
classpathref | 要使用的类路径,以对在其他地方定义的路径的 引用 形式给出。 | 否 |
type | 要查找的 file 的类型,可以是目录 (type=dir) 或文件 (type= file)。如果未设置,则如果在 file 属性中指定的名存在作为文件或目录,则将设置属性。 |
否 |
ignoresystemclasses | 忽略 Ant 的运行时类,仅使用指定的类路径。仅影响 classname 属性。 | 否;默认为 false |
searchparents | 这包含 filetype 的行为。如果为 true,则任务在搜索文件时,不仅会搜索指定的目录,还会搜索这些目录的父目录。如果为 false,则只会搜索指定的目录。自 Ant 1.7 起 |
否;默认为 false |
Available
的 classpath 属性是 路径状结构,也可以通过嵌套的 <classpath>
元素设置。
Available
的 filepath 属性是 路径状结构,也可以通过嵌套的 <filepath>
元素设置。
如果在 Ant 的类路径中找到类 org.whatever.Myclass
,则将 Myclass.present
属性设置为值 true
。
<available classname="org.whatever.Myclass" property="Myclass.present"/>
如果找到文件 ./lib/jaxp11/jaxp.jar,则将 jaxp.jar.present
属性设置为值 true
。
<property name="jaxp.jar" value="./lib/jaxp11/jaxp.jar"/> <available file="${jaxp.jar}" property="jaxp.jar.present"/>
如果找到目录 /usr/local/lib,则将 local.lib.present
属性设置为值 true
。
<available file="/usr/local/lib" type="dir" property="local.lib.present"/>
如果在由 jaxp(在本例中为 ./lib/jaxp11/jaxp.jar)引用的类路径中找到类 javax.xml.transform.Transformer
,则将 jaxp11.present
属性设置为值 true
。
...in project ... <property name="jaxp.jar" value="./lib/jaxp11/jaxp.jar"/> <path id="jaxp" location="${jaxp.jar}"/> ...in target ... <available classname="javax.xml.transform.Transformer" classpathref="jaxp" property="jaxp11.present"/>
如果找到资源文件 extratasks.properties,则将 have.extras
属性设置为值 true
。
<available property="have.extras" resource="extratasks.properties"> <classpath> <pathelement location="/usr/local/ant/extra.jar"/> </classpath> </available>