有真的在你的缓存中的“老”罐子没有问题。如果你的项目不需要较旧的jar,常春藤会简单地忽略它。旧的jar在你的系统中占用大约50千字节。在太字节驱动时代,释放空间不值得花时间和精力。
常春藤缓存就是这样的:一个缓存。这是你的项目使用常春藤所有。如果一个较旧的项目需要1.0.4版本的commons-logging jar,它将已经在Ivy缓存中,并且不必下载,因此,像一个好的缓存一样,它可以节省您的时间和精力。
你可以做一个<ivy:cleancache>
,但它确实可以擦洗整个缓存:所有内容都将被删除。它将摆脱较旧的1.0.4版本的jar,但它也会摆脱jar的1.1.1版本。当然,常春藤会在下次请求时下载它,但这意味着等待常春藤下载所有的罐子。
顺便说一下,这是<ivy:cleancache>
的一个大问题:如果您使用Ivy执行多个构建,并且清理了缓存,则最终会破坏其他构建。通常,这不是个人用户的问题,但它可以用于持续集成系统。
如果你看看常春藤文档,它说一个<ivy:cleancache>
是一样的:
:
<delete dir="${ivy.cache.dir}" />
您可以通过使用日期selector使用,作为一个基础,删除旧罐子
<delete dir="${ivy.cache.dir}">
<date datetime="01/01/2010 12:00 AM" when="before"/>
<include name="*.jar"/>
</delete>
但是,它使用修改后的日期而不是该jar创建的日期。
忽略你的Ivy缓存目录,不用担心。如果常青藤缓存变得太大,您可以删除它,常春藤会根据需要重新下载新的罐子。
ivy的一个问题是:cleancache是它每次调用时都会删除缓存文件夹。因此每次缓存必须重新构建。这与缓存需要做的事情相反。创建缓存失败了它必须提供的性能优势的目的。 – 2012-08-28 10:40:56