首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ANT文件中折射器类似的代码片段

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

Stack Overflow用户
提问于 2012-06-19 16:27:26
回答 2查看 228关注 0票数 2

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

代码语言:javascript
复制
<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文件中调用它呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-20 07:51:25

我找到了解决办法。同时我自己回答并问。我被发现是这里

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

代码语言:javascript
复制
<?xml version="1.0"?>
<!DOCTYPE project [
       <!ENTITY common SYSTEM "common.xml">
]>
<project name="test" default="test" basedir=".">
  <target name="setup">
    ...
  </target>
  &common;
  ...   
</project>
票数 1
EN

Stack Overflow用户

发布于 2012-06-20 10:53:09

使用import。它将执行与实体包括,相同的操作,但它还将赋予您重写目标的能力,并提供特殊属性,如导入的ant文件的路径。来自import文档:

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

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

在导入的文件中,创建一个presetdef,如下所示

代码语言:javascript
复制
<presetdef name="mxmlc" uri="com.chercheinfo">
   <mxmlc> 
<!-- BEGIN code A -->
...
...
...
<!-- END code A -->
   </mxmlc>
</presetdef>

然后,可以将目标更改为:

代码语言:javascript
复制
<target name="my target">
    <kaissun: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"> 
    </kaissun:mxmlc>
</target>

(您需要将以下属性xmlns:kaissun="com.chercheinfo"添加到project元素中,以便将kaissun绑定到com.chercheinfo)

您也可以使用presetdef预置公共属性。例如,

代码语言:javascript
复制
<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>

会让你把目标缩小到

代码语言:javascript
复制
<target name="my target">
    <kaissun:mxmlc  file="${APPS_DIR}//@{appName}.mxml" 
        output="${DEPLOY_APPS_DIR}/@{appName}.swf" 
        debug="${DEBUG_TF}"> 
    </kaissun:mxmlc>
</target>

:D

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11105285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档