Как я могу заставить Eclipse использовать мою переменную IVY_HOME при загрузке зависимостей ivy?

Моя компания широко использует ivy для загрузки зависимостей. Некоторые из этих зависимостей огромны (~ 500 МБ), и их загрузка из удаленных репозиториев занимает некоторое время.

Для сборки нашего приложения у нас есть скрипт ant, который сначала разрешит все зависимости и развернет их на сервере.

Я установил переменную среды «IVY_HOME», чтобы все зависимости загружались в D:\ivy_home вместо C:\Users\.ivy2\ — это потому, что D: — это мой SSD, который значительно быстрее, и именно там находится мой расположены локальные каталоги сервера, поэтому копирование файлов с ivy_home на сервер происходит очень быстро.

Но по какой-то причине, когда я использую плагин IvyDE внутри eclipse, он всегда хочет загрузить отдельную копию всех зависимостей и поместить их в мой C:\, что вызывает несколько проблем:

  1. Локальные публикации из скрипта ant не будут приниматься в eclipse, поскольку они помещаются в другое место.
  2. Зависимости, уже загруженные в D:, не будут выбраны, что делает ivy Resolve внутри eclipse намного медленнее, чем нужно.
  3. Зависимости находятся на более медленном диске в eclipse, поэтому выполнение поиска и выполнение этих банок также медленнее.

person codefactor    schedule 27.06.2012    source источник
comment
В качестве обходного пути я смог создать соединение NTFS, чтобы мой каталог c:\Users\‹username›\.ivy2 на самом деле указывал на тот же каталог, что и мой IVY_HOME. Но очевидно, что соединение NTFS связано с некоторыми накладными расходами и не является идеальным решением.   -  person codefactor    schedule 28.06.2012
comment
Я нашел этот билет — я думаю, что это ошибка в IvyDE issues.apache.org/jira /browse/IVYDE-311   -  person codefactor    schedule 28.06.2012


Ответы (3)


Как насчет создания символической ссылки для замены .ivy2 в Users на D? Я попробовал это самостоятельно, и это выглядит нормально.

Откройте cmd как root, а затем выполните эту строку

mklink /d C:\Users\{username}\.ivy2 D:\.ivy2
person dieend    schedule 18.01.2014
comment
Спасибо за ваш ответ - на самом деле это то, что я сделал. - person codefactor; 18.01.2014

Я бы создал файл ivysettings.xml и указал расположение моего кеша, используя кеши. См., например, следующий ответ:

могу ли я полностью отключить кэш .ivy ?

person Mark O'Connor    schedule 27.06.2012
comment
Я не хочу менять каталог кеша для одного проекта — я хочу изменить расположение хранилища ivy по умолчанию. Обратите внимание, что в моей компании есть много проектов, использующих ivy, и настройки для каждого проекта не должны зависеть от конкретной машины. Каждый разработчик указывает каталог IVY_HOME, чтобы максимизировать время в зависимости от его или ее конкретной настройки. - person codefactor; 28.06.2012
comment
@codefactor Эйад предложил другой вариант. Установите значение свойства ivy.default.ivy.user.dir. - person Mark O'Connor; 28.06.2012

Почему бы вам не настроить IVY глобально с помощью ivysettings.xml вместе с файлом свойств. Этот файл свойств может иметь следующее:

ivy.default.ivy.user.dir=D:\ivy_home

Для отдельных проектов вы можете снять флажок «включить настройки проекта» для каждого управления библиотекой IvyDE, чтобы они использовали глобальные настройки IVY с одной дополнительной конфигурацией среды eclipse.

person Eyad Ebrahim    schedule 28.06.2012
comment
Можете ли вы указать, как настроить IVY глобально? Есть ли какая-то переменная среды, которую можно настроить для изменения местоположения .ivy2? На данный момент я не вижу другого варианта, кроме сим-ссылок. - person IceMan; 27.11.2017