Загрузка сайтов обновлений плагинов Eclipse для автономной установки

Плагин, который я хочу установить, предоставляет сайт обновления для установки. Однако установка Eclipse, которую я хочу установить, находится на машине, которая не подключена к Интернету. Есть ли способ получить доступ к сайту (HTTP, FTP и т.д.) Для загрузки файлов в него для автономной установки?

Ответ 1

Eclipse предлагает способ зеркального отражения этих сайтов автоматически, либо через командную строку, либо через ant задачи.

Зеркало, основанное на информации p2

$eclipse_home/eclipse -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication -source $1 -destination $2
$eclipse_home/eclipse -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication -source $1 -destination $2

Ссылка: Зеркальное отображение репозитория Equinox p2

Зеркало на основе информации о сайте .xml

java -jar $eclipse_home/plugins/org.eclipse.equinox.launcher_*.jar -application org.eclipse.update.core.standaloneUpdate -command mirror -from $from -to $to

Ссылка: Запуск менеджера обновлений из командной строки

Вы можете следить за эволюцией этих скриптов в моем script репозитории.

Ответ 2

Большинство подключаемых модулей Eclipse могут быть установлены без обновления Eclipse, скопировав требуемые JAR файлы, доступные на сайте обновлений, в директории плагинов и функций Eclipse.

В некоторых случаях необходимо запустить Eclipse с помощью -clean-переключателя.

Вот пример того, как это сделать для плагина m2eclipse:

  • Сайт обновления m2eclipse http://m2eclipse.sonatype.org/update. Идентификация списка необходимых JAR - это первый шаг. Обычно это находится в файле site.xml; в этом случае вы найдете его в http://m2eclipse.sonatype.org/update/site.xml.
  • Отфильтровать список JAR, который будет загружен в версию плагина, который вы собираетесь использовать. Это может быть определено атрибутом версии для каждой "функции". Если вам повезет, вы найдете описание JAR в категории node.
  • Обратите внимание на атрибут url каждого JAR, который необходимо загрузить. Это будет включать подкаталог на сервере, где доступен JAR, а также каталог в установке Eclipse, где они должны быть размещены.

PS: Этот метод немного хакерский, но он основан на ссылке на сайт. Но обратитесь к обновлению

Обновление

Я не пытался это сделать, но вы можете создать локальный зеркальный сайт, откуда все остальные могут загружать плагины Eclipse. В Galileo это можно сделать, запустив Eclipse updater в автономном режиме с помощью команды mirror.

Ответ 3

После некоторого времени борется с зеркалированием, я понял, что гораздо проще (по крайней мере, для меня) использовать вместо этого "wget".

Короче:

  • Загрузите сайт:

    wget --recursive --no-parent http://url.of/updatesite

  • Загрузите содержимое загруженного сайта обновления и переместите его в автономную среду.

  • Добавьте каталог автономного каталога обновлений в список доступных сайтов программного обеспечения с помощью кнопки "Локальный...".

Вы можете прочитать об этом более подробно здесь.

Ответ 4

Вы можете зеркалировать сайты p2 с помощью Ant задач:

<target name="springide">
    <echo>springide</echo> 
    <p2.mirror verbose="true">
        <repository location="${REPO_HOME}/springide" name="springide" append="true"/>
        <source>
            <repository location="http://springide.org/updatesite" />
        </source>
        <iu id="Core / Spring IDE" version="" />
        <iu id="Extensions / Spring IDE" version="" />
        <iu id="Integrations / Spring IDE" version="" />
        <iu id="Resources / Spring IDE" version="" />
    </p2.mirror>
</target>

или findbugs:

<target name="findbugs">

<echo>findbugs</echo>
    <p2.mirror verbose="true">
        <repository location="${REPO_HOME}/findbugs" name="findbugs" append="true"/>
        <source>
            <repository location="http://findbugs.cs.umd.edu/eclipse/" />
        </source>
        <iu id="edu.umd.cs.findbugs.plugin.eclipse.feature.group" version="" />
    </p2.mirror>
</target>

Чтобы это сработало, вам нужно запустить задачи Ant в той же JVM, что и eclipse.

Вы можете найти идентификаторы IU: открыв "Обновления программного обеспечения" и скопировав их там. В Eclipse 3.5 должна быть кнопка More..., в 3.4 вам нужно нажать кнопку свойств.

Ответ 5

Я обнаружил, что p2 mirrorApplication не очень хорошо работает на некоторых сайтах и ​​зеркальных дублированных артефактах (как версии pack200, так и jar). Агрегатор b3 работал намного лучше и упростил настройку моего сайта обновления. См. Руководство по адресу https://wiki.eclipse.org/Eclipse_b3/aggregator/manual для установки инструкций и деталей.

Основные шаги, которые я использовал, были:

  • Файл > Создать > Другое... > b3 > Агрегирование репозитория.
  • Выберите Агрегирование node и установите Build Root в папку, в которую вы хотите выполнить агрегированное репо.
  • Добавьте нужные вам платформы, используя R-щелкните Агрегирование node > Новый ребенок > Конфигурация.
  • Добавьте один набор проверки, обычно устанавливая его ярлык на основной.
  • Если вам не нужны дополнительные пакеты из основного репозитория eclipse (например: http://download.eclipse.org/releases/mars), вы можете добавить его в Validation Set как Репозиторий проверки достоверности, но обычно вам нужно добавить его как Mapped Repository в Вклад поэтому можно загрузить зависимости и/или дополнительные функции eclipse.
  • Для каждого плагина добавьте Contribution с меткой и под этим хотя бы одним Mapped репозиторием с местоположением.
  • Добавьте Узлы пользовательской категории в Агрегирование, если хотите; дайте им каждое уникальное описание, идентификатор и ярлык.
  • Развернуть Браузер хранилища node внизу > expand uro репо > развернуть Устанавливаемые единицы > Посмотрите на функции в Категории. > (если присутствует) и/или в Функции.
  • R-щелкните нужные функции и добавьте в пользовательскую категорию (если вы их используете), в противном случае добавьте в родительский сопоставленный репозиторий как > Mapped Feature.
  • R-щелкните любую node > Агрегацию сборки.

Важное примечание:, если вы не сопоставляете какие-либо функции из данного репозитория, весь зеркальный репозиторий будет зеркальным (последние версии всех пакетов, на которые я думаю, а не все в репо).

Я, к счастью, не должен был связываться с Правилами исключений или Правилами действительной конфигурации, которые, похоже, усложняют ситуацию. Тем не менее, правила исключения могут быть необходимы, если в репозиториях содержатся пакеты, которые имеют конфликты зависимости, и в этом случае необходимо исключить один или несколько конфликтующих пакетов.

В то время как b3 Aggregator обычно загружает только последнюю версию каждой функции, которую вы сопоставили (и ее зависимости), если вы повторно используете Build Aggregation со временем по мере выпуска новых версий, устаревшие версии будут накапливаться в вашей агрегации. Вы можете использовать "Чистота", а затем "Агрегация сборки", но это означает, что вам придется перезагружать все. Вместо этого просто добавьте еще один файл агрегации .b3aggr, установите Build Root, добавьте свои конфигурации и добавьте один вклад в сопоставленный репозиторий, используя путь к вашему локальному зеркальному каталогу final. Не указывайте какие-либо функции или не создавайте какие-либо категории. Затем Build Aggregation и только последние версии из вашего зеркала будут агрегированы!

Ответ 6

Плагины Eclipse обычно зависят от других плагинов. Трудно проследить зависимости. Лучше всего загрузить все зависимости, используя сайт обновления, и вы можете распространять их на другие капли Eclipse. Для Eclipse 3.4 или новее вы можете использовать dropins, который является функцией Eclipse. Таким образом, вам не нужно устанавливать плагин с сайта обновлений каждый раз, когда вам нужно переустановить ваш Eclipse. Читайте на http://michsan.web.id/content/how-install-eclipse-plugins-offline

Если вы не видите веб-сайт, я дам вам некоторое описание

Подготовить каталог для внешних плагинов

Создайте специальный каталог для хранения наших любимых плагинов, например. в /home/ichsan/eclipse -dropins мы установим плагин Maven: m2eclipse.

mkdir /home/ichsan/eclipse-dropins

Теперь мы будем называть этот каталог DROPINS

Подготовка песочницы

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

Сначала извлеките/установите новый Eclipse в каталог, например. /home/ichsan/eclipse -sandbox (чтобы мы нашли /home/ichsan/eclipse -sandbox/eclipse.ini). Мы называем каталог ECLIPSE_SANDBOX.

Затем завершите новую установку. Этот шаг нужно сделать только один раз.

cd $ECLIPSE_SANDBOX
git init
git add .
git commit -am "Fresh Eclipse"

Установить плагин на песочнице

Теперь интересная часть. Предположим, мы должны установить плагин m2eclipse. Мы установим это на новый ветвь Git, чтобы главная ветка оставалась чистой или оставалась неповрежденной.

cd $ECLIPSE_SANDBOX
git checkout -b "m2eclipse"

Теперь мы запустим Eclipse из ECLIPSE_SANDBOX и загрузим плагин. Как только мы закончим, мы закрываем Eclipse и проверяем, какие новые каталоги или файлы были созданы (используя Git). Помните, что мы заботимся о новых плагинах и каталогах функций и содержимом внутри них. Таким образом, мы не будем копировать остальные в капли.

# Prepare the m2eclipse plugin directories
mkdir -p $DROPINS/m2eclipse/eclipse/plugins
mkdir -p $DROPINS/m2eclipse/eclipse/features

cd $ECLIPSE_SANDBOX
for f in $(git status | sed "s/#\t//g" | grep -P "^plugins" ); do cp -R $f $DROPINS/m2eclipse/eclipse/plugins; done
for f in $(git status | sed "s/#\t//g" | grep -P "^features"); do cp -R $f $DROPINS/m2eclipse/eclipse/features; done

# Make the directory read only
chmod -R -w $DROPINS/m2eclipse

# Commit changes
git add .
git add -u
git commit -am "M2Eclipse plugin installed"


# Back to master branch to make Eclipse clean again and ready for other plugin installations
git checkout master
Installing the plugin

Просто скопируйте каталог DROPINS/m2eclipse в ECLIPSE_HOME/dropins или создайте символическую ссылку. И все готово!

cd $ECLIPSE_HOME/dropins ln -s $DROPINS/m2eclipse

Другой способ заключается в резервном копировании различий между компиляцией fresh-Eclipse и фиксацией после завершения плагина.

for i in `git diff hashFreshEclipse hashPluginInstall --name-only`;do 
  if [ -f $i ]; then
    tar -r -f m2e-android.tar $i
  fi
done
gzip m2e-android.tar

Ответ 7

Вы можете получить это отсюда https://repository.sonatype.org/content/repositories/forge-sites/m2e/1.3.0/N/1.3.0.20121023-1108/

Загрузите все файлы, сверлящие плагины и функции. Храните в каталоге на вашей машине, сохраняя все в одной структуре каталогов. Переместите его в папку на вашей машине dev.

В Eclipse перейдите к Help | Intall New Software... Нажмите кнопку "Добавить" Нажмите кнопку "Local..." Найдите каталог, в который вы поместили файлы. Следуйте инструкциям на экране.