1

我对这个非常恼火。这是场景:

  1. 我有一个构建和输出一堆 swcs 的 ant 任务
  2. ant 任务删除“libs”文件夹中的所有项目,然后按照我的库输出的顺序进行编译,将它们输出到“libs”文件夹。
  3. 我编译的其他模块依赖于这些库

问题:我遇到的问题是依赖于另一个 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 中的另一个编译库,这也是我要构建的文件夹。不知道为什么,我闻到一股香味!

4

0 回答 0