apache flex - Ant Uptodate 任务不考虑已删除的文件



我正在尝试通过使用 ANT <updtodate/>任务来检查更改并仅在必要时进行编译来加快构建速度。这是针对 Flex 项目的。这是我构建的相关部分.xml:

  <target name="framework-clean"
          description="Clean the Framework library">
    <echo>Clean: Deleting dist directory in framework</echo>        
   <delete dir="${flex.framework.dir}/dist"/>
  </target>
  <target name="check-framework-changes">     
      <uptodate property="framework-no-changes" targetfile="${flex.framework.dir}/dist/imanager-framework.swc">
         <srcfiles dir="${flex.framework.dir}/src" />
         <srcfiles dir="${flex.framework.dir}/libs" />         
      </uptodate>             
   </target>
  <target name="framework-compile"            
          depends="check-framework-changes"
          unless="framework-no-changes"
          description="Compile the Framework library">          
    <mkdir dir="${flex.framework.dir}/dist"/>   
    <echo>Compile: Compiling iManager Framework</echo>
    <compc output="${flex.framework.dir}/dist/imanager-framework.swc" 
       debug="${debug}" 
       incremental="${incremental}">            
      <keep-as3-metadata name="Master"/>
      <keep-as3-metadata name="Component"/>
      <keep-as3-metadata name="Key"/>
      <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
      <source-path path-element="${flex.framework.dir}/src" />
      <library-path dir="${flex.framework.dir}/libs" includes="*.swc" append="true"/>
      <include-sources dir="${flex.framework.dir}/src" includes="*" />          
    </compc>
  </target> 

问题:

假设我在项目中添加了一个名为 Foo.as 的文件,脚本将检测到更改并重新编译 swc。但是,如果我删除此 Foo.as 而不更改任何其他文件,则脚本不会编译项目。即使更新了 Foo 父文件夹的上次修改时间戳,也会忽略此更改。

有什么办法可以解决这个问题吗?

我的 ANT 版本是 1.8.4,我使用的是 Flex SDK 4.6

我修改了check-framework-changes目标以包含目录和文件。

  <target name="check-framework-changes">     
      <uptodate property="framework-no-changes" targetfile="${flex.framework.dir}/dist/imanager-framework.swc">
        <srcresources>
            <fileset dir="${flex.framework.dir}/src" />
            <fileset dir="${flex.framework.dir}/libs" />
            <dirset dir="${flex.framework.dir}/src" />
            <dirset dir="${flex.framework.dir}/libs" />
        </srcresources>                
      </uptodate>             
   </target>

这解决了问题

相关内容

  • 没有找到相关文章

最新更新