<updtodate/>
我正在尝试通过使用 ANT任务检查更改并仅在必要时进行编译来加快构建速度。这是针对 Flex 项目的。这是我的 build.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