Extension-Points

简俊楚
2023-12-01

        Extension-Points是Ant1.8.0加入的新特性,与target类似,有一个名称和一个依赖列表,并且也能够在命令行中执行。与target不同的是,Extension-Points中没有task,它的主要目的是将有助于达到期望目标的target收集到依赖列表中。 Target可以通过extensionOf将自己添加到extension-points的依赖列表中。target将自己添加到extension-points的depends属性配置的target之后 ,如果有多个target将自己加入到extension-points,它们之间是无序的。

        Extension-point的主要用来作为导入的构建文件的扩展点。在导入的文件中extension-point定义了必须要达到的状态,其他构建文件的target可以加入到extension-point的依赖列表中,以便达到期望的状态。

        假设导入一个编译代码的构建文件,例如:

<target name="create-directory-layout">
   ...
</target>
<extension-point name="ready-to-compile"
              depends="create-directory-layout"/>
<target name="compile" depends="ready-to-compile">
   ...
</target>
        调用顺序为create-directory-layout -> 'empty slot' -> compile
        需要在编译之前生成一些源代码,在你的构建文件的target中使用extensionOf,例如:

<target name="generate-sources"
        extensionOf="ready-to-compile">
   ...
</target>
        此时调用顺序为create-directory-layout -> generate-sources-> compile
        这样就可以保证在编译之前生成源代码。










 类似资料: