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

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

8 ответов

Решение

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 репозитория зеркалирования

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

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

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

Вы можете следить за развитием этих сценариев в моем хранилище сценариев.

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

Короче:

  1. Скачать сайт:

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

  2. Возьмите содержимое загруженного сайта обновлений и переместите его в автономную среду

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

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

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

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

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

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

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

Обновить

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

Я только столкнулся с этой проблемой и решил ее, следуя инструкциям из этого руководства. В итоге выполните следующие команды на своем терминале в папке Eclipse:

  1. eclipsec.exe -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication -source $1 -destination $2

  2. eclipsec.exe -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication -source $1 -destination $2

куда $1 ссылается на URL-адрес онлайн-хранилища и $2 ссылается на путь к локальной папке. Например, чтобы скачать Vrapper на моем рабочем столе Windows:

$ 1 = http://vrapper.sourceforge.net/update-site/stable/

$ 2 = C: / Users / foo / Desktop

Перенесите папку на машину без подключения к Интернету. Затем запустите Eclipse -> Справка> Установить новое программное обеспечение. Укажите локальный репозиторий (т. Е. Папку, которую вы только что перенесли) для установки. Это должно работать.

Вы можете зеркалировать сайты 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>

или найти ошибки:

<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>

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

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

Плагины 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, чтобы ветка master оставалась чистой или оставалась нетронутой.

cd $ECLIPSE_SANDBOX
git checkout -b "m2eclipse"

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

# 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

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

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

  • Файл> Создать> Другое... > b3 > Агрегирование репозитория.
  • Выберите узел агрегации и задайте в качестве корня сборки папку, в которую вы хотите включить агрегированное репо.
  • Добавьте платформы, которые вам нужны, используя R-щелкните узел Aggregation > New Child > Configuration.
  • Добавьте один набор валидации, обычно установите его метку в main.
  • Если вам не нужны какие-либо дополнительные комплекты из основного репозитория eclipse (например: http://download.eclipse.org/releases/mars), вы можете добавить его в набор валидации в качестве репозитория валидации, но обычно вам потребуется добавить его как Mapped Repository в Contribution, чтобы можно было загружать зависимости и / или дополнительные функции затмения.
  • Для каждого плагина добавьте вклад с меткой и под этим по крайней мере один сопоставленный репозиторий с местоположением.
  • Добавьте узлы пользовательской категории в агрегацию, если хотите; дать каждому из них уникальное описание, идентификатор и метку.
  • Разверните узел " Обозреватель репозитория" внизу> разверните URL-адрес хранилища > разверните Устанавливаемые блоки > Посмотрите функции в категориях (если они есть) и / или в разделе " Функции".
  • R-щелкните нужные вам объекты и добавьте в пользовательскую категорию (если вы их используете), в противном случае добавьте в родительский сопоставленный репозиторий как> Сопоставленный объект.
  • R-щелкните любой узел> Агрегирование сборки.

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

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

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

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

Загрузите все файлы, углубляясь в плагины и функции. Храните в каталоге на вашем компьютере, сохраняя все в той же структуре каталогов. Переместите его в папку на вашем компьютере разработчика.

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

Другие вопросы по тегам