ANT文件中的折射器类似代码段

ANT文件中的折射器类似代码段,ant,mxmlc,Ant,Mxmlc,我的ANT文件中有以下代码段,它将我的项目编译为swf文件: <target name="my target"> <mxmlc file="${APPS_DIR}//@{appName}.mxml" output="${DEPLOY_APPS_DIR}/@{appName}.swf" actionscript-file-encoding="UTF-8" keep-generated-actionscript="false" optimi

我的ANT文件中有以下代码段,它将我的项目编译为swf文件:

<target name="my target">
<mxmlc  file="${APPS_DIR}//@{appName}.mxml" 
    output="${DEPLOY_APPS_DIR}/@{appName}.swf" 
    actionscript-file-encoding="UTF-8" 
    keep-generated-actionscript="false" 
    optimize="true" 
    debug="${DEBUG_TF}" 
    locale="en_US"
    static-rsls="false"
    static-link-runtime-shared-libraries="false"
    verify-digests="false"> 
<!-- BEGIN code A -->
...
...
...
<!-- END code A -->
</mxmlc>
</target>

...
...
...
由于我有许多文件以类似的方式使用代码A,因此我想创建一个包含此代码的可分离文件


但是,如何从主ant文件调用它呢?

我找到了解决方案。我一边回答一边问。我被找到了

您可以使用XML包含外部文件的方式,并让解析器为Ant完成以下工作:

<?xml version="1.0"?>
<!DOCTYPE project [
       <!ENTITY common SYSTEM "common.xml">
]>
<project name="test" default="test" basedir=".">
  <target name="setup">
    ...
  </target>
  &common;
  ...   
</project>

...
&普通的;
...   
使用。它将执行与的相同的操作,但它还将使您能够覆盖目标,并提供特殊属性,如导入的ant文件的路径。从
导入
文档:

因此,如果我导入一个名为builddocs的docsbuild.xml文件,我可以得到它的路径ant.file.builddocs,类似于主构建文件的ant.file属性

更新(因为我没有正确阅读原始问题)

在导入的文件中,创建一个

<presetdef name="mxmlc" uri="com.chercheinfo">
   <mxmlc> 
<!-- BEGIN code A -->
...
...
...
<!-- END code A -->
   </mxmlc>
</presetdef>
可以让你把目标缩小到

<target name="my target">
    <kaissun:mxmlc  file="${APPS_DIR}//@{appName}.mxml" 
        output="${DEPLOY_APPS_DIR}/@{appName}.swf" 
        debug="${DEBUG_TF}"> 
    </kaissun:mxmlc>
</target>


:D

您的
代码A
位于
任务中。任务本身是否可以重用?那么,
code A
包含什么?大多数支持嵌套元素的任务只接受一小部分任务和类型。例如,一个任务只能接受
作为其嵌套元素。因此,我不确定
是否能做到这一点。我认为它不起作用,但您仍然可以查看:谢谢您的帮助,但我找到了解决方案。你会在下一条评论中找到它。将解决方案作为一个答案发布,并为那些将来可能通过搜索到达那里的人接受它。+1!很适合使用我的伪代码和网站;)这是一个很好的解决方案,即使它更复杂,只是因为它包含我的伪:)非常感谢您的帮助。@kaissun每个人都喜欢个人风格。:)
<presetdef name="mxmlc" uri="com.chercheinfo">
   <mxmlc actionscript-file-encoding="UTF-8"
       keep-generated-actionscript="false"
       optimize="true"
       locale="en_US"
       static-rsls="false"
       static-link-runtime-shared-libraries="false"
       verify-digests="false"> 
<!-- BEGIN code A -->
...
...
...
<!-- END code A -->
   </mxmlc>
</presetdef>
<target name="my target">
    <kaissun:mxmlc  file="${APPS_DIR}//@{appName}.mxml" 
        output="${DEPLOY_APPS_DIR}/@{appName}.swf" 
        debug="${DEBUG_TF}"> 
    </kaissun:mxmlc>
</target>