使用Ant替换zip中的文件,而不考虑时间戳
我想使用zip任务(或任何其他可以这样做的ANT任务)替换一个大型归档中的1-2个文件。我知道传递使用Ant替换zip中的文件,而不考虑时间戳,ant,Ant,我想使用zip任务(或任何其他可以这样做的ANT任务)替换一个大型归档中的1-2个文件。我知道传递update=true参数可以做到这一点,但只有在新文件的时间戳比旧文件的时间戳更大的情况下才能做到。我希望确保该文件被替换,即使它与现有存档中的文件相比具有旧的时间戳 我看过几篇帖子,他们建议解压替换重新压缩之类的东西。但是,如果可能的话,我想避免这种情况,因为我的归档文件很大(以GBs为单位)。是否有其他对性能影响最小的方法 我发现的另一种方法是使用zipfileset任务,如下所示: <
update=true
参数可以做到这一点,但只有在新文件的时间戳比旧文件的时间戳更大的情况下才能做到。我希望确保该文件被替换,即使它与现有存档中的文件相比具有旧的时间戳
我看过几篇帖子,他们建议解压替换重新压缩之类的东西。但是,如果可能的话,我想避免这种情况,因为我的归档文件很大(以GBs为单位)。是否有其他对性能影响最小的方法
我发现的另一种方法是使用zipfileset
任务,如下所示:
<zip destfile="tmp.jar">
<zipfileset src="src.jar">
<exclude name="abc.class" />
</zipfileset>
<zipfileset dir="${basedir}/myclasses" includes="abc.class" />
</zip>
<move file="tmp.jar" tofile="src.jar" />
对于整个存档,此任务是否与解压缩删除添加重新压缩相同?还是在时间方面效率更高?您检查过了吗。它谈论战争,但对你应该有用。是的,我看过。但是,在我的情况下,用当前时间戳触摸现有文件并不总是可靠的,因为我的归档文件可能包含一些未来日期的文件(我知道这很奇怪,但在打包归档文件时,我们通常使用+24小时偏移量来确保文件在多个时区内被替换。这是我们产品中的遗留代码。我们可以尽可能地删除它,但归档文件中仍有可能存在未来日期的文件。