2011-11-05 41 views
0

我对蚂蚁有一个非常奇怪的问题。这段代码会生成一组带有正确名称和时间戳的文件,但是内容过时。为什么蚂蚁复制旧文件内容?

<target name="inflate-workspace"> 
    <copy todir="${rns.workspace.dir}" preservelastmodified="true" > 
     <fileset dir="${git.dir}/azia" /> 
     <fileset dir="${git.dir}/scrap-menagerie" /> 
    </copy> 
</target> 

toDir所得时间戳正确地匹配在fileset S,但每个文件的内容为约2天。我激活了verbose标志并手动验证源目录和目标目录是否正确。我也手动删除了toDir并单独运行目标,以确保没有其他奇怪的事情发生。运行cp -R ...与完全相同的目录完美无瑕。

环境是VBox上的Debian,托管在Windows 7中。谷歌什么都没有涉及到“ant copy obsolete file contents”或类似的东西......任何人都听说过这样的事情?请让我知道,真的很麻烦蚂蚁copy坏了!

+0

你的问题是什么:你认为不应该被复制的文件被复制?或者某些文件不被复制,但应该是? –

+0

正在复制正确的一组文件,但每个文件内的文本已过时2天。即使我删除整个目标目录,也会发生这种情况。所有文件都显示出来,但是我可以打开每个文件并查看里面的过时数据。用“cp -R”复制进程以正确的内容复制正确的文件。 –

+0

我不明白:如果您删除目标并呼叫ant,那么旧数据从哪里来?它必须在源头上。 –

回答

0

这里的问题是,蚂蚁1.8.0被打破。我无法想象它为什么会发布,或者为什么它仍然处于Debian的突触状态。多么可怕的bug ...... hacky apache。

+0

您是否建议ant 1.8.0能够缓存2天内的文件内容?你的问题在别的地方。如果你删除了'toDir'文件夹,它不是一个完整的隔离。更完全的隔离将是使用不存在的不同目标文件夹。 – Jarekczek

+0

我不认为蚂蚁“缓存”任何东西。有很多可能性,例如,ant可以使用临时区域来暂存目录副本。对于相关代码中的错误,在目录副本上产生陈旧的文件数据将会非常简单。我可以调查代码更改并查看问题是什么,但我只是很高兴它可以在最新版本中使用。 –

0

尝试将overwrite="true"添加到您的复制命令。

+0

好吧,即使我删除整个目标目录,也会发生这种情况。也许VBox共享文件夹中有一些奇怪的错误,尽管它总是可以正确使用“cp -R”。 –

0

检查可能遗忘的.class文件,并在下次使用ant构建之前删除它们。