2012-11-02 50 views
0

我有一个名为framework的flex项目,另一个名为commons。 Commons依赖于框架。在Flex中使用ANT,构建相关目标失败

为框架构建脚本:为公共

<project name="imanager-framework" basedir="."> 

    <property name="src" location="src"/> 
    <property name="dist" location="dist"/> 
    <property name="FLEX_HOME" value="C:/Program Files (x86)/Adobe/Adobe Flash Builder 4.5/sdks/4.6.0"/>   

    <taskdef resource="flexTasks.tasks" classpath="${basedir}/libs/flexTasksFlash4.jar"/> 

    <target name="clean">  
     <delete dir="${dist}"/> 
    </target> 

    <target name="dist"> 
     <echo>src dir: ${src}</echo> 
     <mkdir dir="${dist}"/> 
     <compc output="${dist}/${ant.project.name}.swc"> 
      <source-path path-element="src" /> 
      <library-path dir="libs" includes="*.swc" append="true"/> 
      <include-sources dir="${src}" includes="*" />   
     </compc> 
    </target> 

</project> 

构建脚本:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="imanager-commons" basedir="."> 

    <property name="src" location="src"/> 
    <property name="dist" location="dist"/> 
    <property name="FLEX_HOME" value="C:/Program Files (x86)/Adobe/Adobe Flash Builder 4.5/sdks/4.6.0"/>   

    <taskdef resource="flexTasks.tasks" classpath="${basedir}/libs/flexTasksFlash4.jar"/> 

    <target name="clean">  
     <delete dir="${dist}"/> 
    </target> 

    <target name="init"> 
     <echo>Running Target: init</echo> 
     <echo>Running ant dist on framework</echo> 
     <!-- THIS PART FAILS --> <ant dir="../framework/" target="dist" inheritall="false"/> 
     <copy file="../framework/dist/imanager-framework.swc" todir="libs"/> 
    </target> 

    <target name="dist" depends="init"> 
     <mkdir dir="${dist}"/> 
     <compc output="${dist}/${ant.project.name}.swc"> 
      <source-path path-element="src" /> 
      <library-path dir="libs" includes="*.swc" append="true"/> 
      <include-sources dir="${src}" includes="*" />   
     </compc> 
    </target> 

</project> 

调用从公共<ant>构建文件给我不好的进口和类不是伪造的编译错误被发现。但是单独运行框架的构建不会给出任何错误。

下面是一些输出我得到

Buildfile: E:\flexspace\imanager\commons\build.xml 
init: 
    [echo] Running Target: init 
    [echo] Running ant dist on framework 
Trying to override old definition of task asdoc 
Trying to override old definition of task compc 
Trying to override old definition of task mxmlc 
Trying to override old definition of task html-wrapper 
dist: 
    [echo] src dir: E:\flexspace\imanager\framework\src 
    [compc] Loading configuration file C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.5\sdks\4.6.0\frameworks\flex-config.xml 
...some warnings from my code here... 
    [compc] E:\flexspace\imanager\framework\src\com\iwobanas\controls\dataGridClasses\MDataGridColumn.as(72): col: 88 Error: Access of undefined property WildcardFilterEditor in package com.iwobanas.controls.dataGridClasses.filterEditors. 
    [compc]    filterEditor = new ClassFactory(com.iwobanas.controls.dataGridClasses.filterEditors.WildcardFilterEditor); 
    [compc]                        ^
    [compc] E:\flexspace\imanager\framework\src\com\iwobanas\controls\dataGridClasses\MDataGridColumn.as(24): col: 60 Error: Definition com.iwobanas.controls.dataGridClasses.filterEditors:WildcardFilterEditor could not be found. 
    [compc]  import com.iwobanas.controls.dataGridClasses.filterEditors.WildcardFilterEditor; 
    [compc]                ^
    [compc] E:\flexspace\imanager\framework\src\org\syspire\erp\component\tooltip\components\ExtendedToolTip.as(3): col: 48 Error: Definition org.syspire.erp.component.tooltip.skins:ExtendedToolTipSkin could not be found. 
    [compc]  import org.syspire.erp.component.tooltip.skins.ExtendedToolTipSkin; 
    [compc]             ^
    [compc] E:\flexspace\imanager\framework\src\org\astrika\shared\components\gridSearch\view\SearchDatePopup.mxml(14): Error: Type was not found or was not a compile-time constant: SearchDateView. 
    [compc]   <gridSearch:SearchDateView id="searchDateView"/> 
...similar errors... 
BUILD FAILED 
E:\flexspace\imanager\commons\build.xml:17: The following error occurred while executing this line: 
E:\flexspace\imanager\framework\build.xml:17: compc task failed 

Total time: 4 seconds 

什么错吗?

感谢

编辑

按照要求,这里的配置转储:

使用Flash Builder框架的构建:http://pastebin.com/kLai6j7X

框架使用Ant构建:http://pastebin.com/FGHBAXZX

框架构建称为来回使用ANT米公地:(这是同前转储)

UPDATE 最后我只是改变了我的生成文件的结构,以消除<ant>电话。我现在如何为所有的项目构建一个build.xml,将所有的目标放在里面。不漂亮,但它适用于我。

+0

那么这是一个参考错误。你可以转一下'-dump-config ',这样我们就可以看看编译器的工作原理了吗? –

回答

0

这有点偏离主题,但我发现Ant在管理Flex项目的构建方面做得不好,尤其是当您有依赖关系时。

您是否考虑过使用带有FlexMojos的Maven? Adobe发布a series of articles关于这个伟大的工具。很多推荐!

0

你肯定可以尝试的一件事是将taskdef移动到目标中,至少会摆脱“尝试覆盖旧的任务定义”警告。