我对这个非常恼火。这是场景:
- 我有一个构建和输出一堆 swcs 的 ant 任务
- ant 任务删除“libs”文件夹中的所有项目,然后按照我的库输出的顺序进行编译,将它们输出到“libs”文件夹。
- 我编译的其他模块依赖于这些库
问题:我遇到的问题是依赖于另一个 swc 的 swc 正在针对旧版本而不是刚刚在 ant 任务中构建的版本进行编译。
所以我们先编译common.swc,然后编译mydependantswc.swc。当我编译 mydependantswc.swc 时,是针对 common.swc 编译的——刚刚构建的那个。当我编译它像 common.swc 一样被缓存时,它会忽略一次刚刚构建并针对旧版本进行编译。
我知道当您在重新编译之前不删除旧的 swc 库时,会在闪存中发生这种情况。但是,我的 ant 任务会删除这些文件。我发现在mac上,如果我手动进入finder并删除那些库,然后编译,它工作正常。即使 ant 任务这样做,它也不起作用。
请问有什么想法吗?听起来这可能是一个普遍的问题?
这里有一些蚂蚁代码片段,我认为它很简单的蚂蚁。
<target name="install-libraries" description="standalone build libs">
<delete includeEmptyDirs="true">
<fileset dir="${bin.dir}/${managed.libs.dest}"/>
</delete>
<mkdir dir="${bin.dir}/${managed.libs.dest}"/>
<antcall target="compile-libraries"/>
</target>
其次是标准的compc任务。
在推特上交谈后,我怀疑它与文件夹结构有关。您会看到一个库依赖于此文件夹 bin.dir 中的另一个编译库,这也是我要构建的文件夹。不知道为什么,我闻到一股香味!