Ant中的目标重写



是否有可能从字面上覆盖目标或以某种方式模拟它?

所以,当我调用

<target perform-after="release">
     <do-something />
</target>

它会像这样运行:

<target name="release">
     <antcall target="release" /> <!-- call previous version, not recursion -->
     <do-something /> 
</target>

我认为它有一个意义,我将描述在Android的例子:

我们在SDK文件夹({$SDK}/tools/ant/*.xml)中有每个build.xml.xml模板,这些文件包含在每个项目生成的build.xml中。只有-pre-compile-pre-build-post-compile目标是空的,并且很容易被覆盖。但是没有空的-post-release目标,例如。Google建议在生成的build.xml评论中复制粘贴一个目标到我自己的build.xml,然后对其进行调优。但我认为这是不好的,因为如果谷歌将改变这个目标内的模板,我永远不会知道我使用过时的版本。

请参阅导入任务的"目标重写"部分或包含任务的"目标重写"部分。简而言之,给common build.xml一个项目名,比如"common",然后使用"common"。在antcall中释放"

我要注意的是antcall并不完全相同,因为它在运行时启动一个新项目,这意味着目标设置的变量稍后将不可见。我在这台机器上没有可用的Ant来测试,但是您可以尝试这样做来避免antcall:

<target name="release" depends="common.release, -post-release"/>

相关内容

  • 没有找到相关文章