3 июня 2011 г.

Зеркалирование репозиториев Eclipse

Мы не по наслышке знакомы с проблемой медленных и очень медленных зеркал репозиториев Eclipse. И это касается не только основного репозитория текущего Eclipse Helios, но и популярных плагинов к нему, которые мы используем в нашей повседневной работе: PyDev, Aptana, FileSync и некоторые другие. Их установка для каждого члена нашей команды однажды заняла неприлично много времени и мы все единодушно решили, что необходимо найти решение для создания локальных зеркал всех необходимых нам репозиториев. В любом случае хорошо уменьшить зависимость своей работы от причуд сторонних сервисов. Да, эти плагины тянутся не так уж и часто, но удобно, когда они под рукой и наверняка доступны в любое время.

Eclipse не предоставляет никакого внятного способа зеркалирования и каждый, кто сталкивается с такой задачей, изворачивается по-своему. Самое удобное и "дешёвое" решение — это запуск специального bash-скрипта, который автоматизирует весь процесс. В Windows наверняка можно написать что-то похожее для его PowerShell при необходимости (у нас такой необходимости нет).

Под каждый репозиторий каждого плагина или библиотеки плагинов необходимо слегка модифицировать основной скрипт. Рассмотрим на примере Aptana.

#!/bin/sh

PROJECT=aptana
PROSRC=http://download.aptana.com/studio3/plugin/install
ECLIPSE=/home/username/eclipse

LAUNCHER=`ls $ECLIPSE/plugins/org.eclipse.equinox.launcher_*.jar | sort | tail -1`

curdir=`pwd`
cd `dirname $0`
cd "${curdir}"
mkdir -p ${PROJECT}

java -jar $LAUNCHER \
-application org.eclipse.equinox.p2.metadata.repository.mirrorApplication \
-source ${PROSRC} \
-destination ${PROJECT} \
-verbose \
-compare

java -jar $LAUNCHER \
-application org.eclipse.equinox.p2.artifact.repository.mirrorApplication \
-source ${PROSRC} \
-destination ${PROJECT} \
-verbose \
-compare

PROJECT — произвольное имя проекта, заодно и имя папки, в которой будет лежать готовое зеркало,

PROSRC — путь к репозиторию, такой же как на сайте проекта,

ECLIPSE — абсолютный путь к папке с Eclipse.

Больше ничего модифицировать не нужно. Кстати говоря, для запуска скрипта необходимо JRE (Java Runtime Environment), так как он использует возможности Eclipse для скачивания и дальнейшей сборки локальной копии репозитория. Подробнее об этом можно узнать из соответствующего раздела официальной документации «Platform Plug-in Developer Guide».

Не забываем сделать скрипт исполняемым (sudo chmod +x script-filename.sh), после чего его можно, собственно, запустить. Отработав, скрипт создаст зеркало в том же подкаталоге, в котором находится сам. На это может уйти действительно много времени, от десятка минут до нескольких часов.

Подключение локального зеркала тривиально и эта процедура ничем не отличается от стандартной. Preferences -> Install/Update -> Available Software Sites. Далее жмём Add или Edit, заполняем 2 строки формы — произвольное имя и адрес нашего зеркала (локальная папка или сетевая, http).

На этом всё. Теперь можно устанавливать плагины уже из своего собственного автономного репозитория.

Комментариев нет:

Отправить комментарий