На самом деле нет проблем с наличием «старой» банки в вашем кеше. Если вашему проекту не нужна старая банка, Айви просто проигнорирует ее. Старая банка занимает около 50 килобайт в вашей системе. В эпоху терабайтных дисков освобождение места не стоит времени и усилий.
Кеш Ivy - это просто кеш. Это для ALL ваших проектов, которые используют Ivy. Если более старый проект требует версию 1.0.4 jar-файла регистрации общего доступа, он уже будет в кэше Ivy и его не нужно загружать, поэтому, как и хорошие кэши, он экономит ваше время и усилия.
Вы можете сделать <ivy:cleancache>
, но это действительно вычистит весь ваш кеш: все будет удалено. Он избавится от старой версии jar 1.0.4, но также избавится и от версии 1.1.1 jar. Конечно, Ivy просто загрузит его в следующий раз, когда его запросят, но это означает, что Ivy загрузит все ваши банки.
Кстати, это одна большая проблема с <ivy:cleancache>
: если вы делаете несколько сборок с Ivy и одна очищает кеш на вас, вы в конечном итоге сломаете другие сборки. Обычно это не проблема для отдельных пользователей, но это может быть для системы непрерывной интеграции.
Если вы посмотрите на документацию Ivy, то там говорится, что <ivy:cleancache>
такой же, как:
<delete dir="${ivy.cache.dir}" />
Вы можете использовать это в качестве основы для удаления старых банок, используя селектор даты :
<delete dir="${ivy.cache.dir}">
<date datetime="01/01/2010 12:00 AM" when="before"/>
<include name="*.jar"/>
</delete>
Однако при этом используется измененная дата банки, а не дата создания банки.
Игнорируйте ваш каталог кэша Ivy и не беспокойтесь об этом. Если кэширование Ivy становится слишком большим, вы можете удалить его, и Ivy просто перезагружает новые банки по мере необходимости.