Можно ли заставить механизм обеспечения eclipse p2 работать * локально *? - PullRequest
26 голосов
/ 25 сентября 2008

Eclipse 3.4 [.x] - также известный как Ganymede - поставляется с этим новым механизмом обеспечения, называемым p2 .

«Предоставление» - это процесс, позволяющий обнаруживать и обновлять по требованию некоторые части приложения, как в общих чертах объясняется в этой статье на веб-сайте Sun .

Eclipse имеет расширенный вики-раздел , в котором представлены подробности p2. В частности, на этой вики-странице сказано, что p2 будет искать новые компоненты Однако после прочтения.

Я полагаю (но вы можете подтвердить эту точку на собственном опыте), что p2 может функционировать с протоколом file: // file, что позволило бы ему обеспечить local file (либо на вашем на компьютере или на UNC-пути '\ server \ path'), как показано здесь , но также в файлах:

  • [затмение-SDK-3.4-win32] \ затмение \ Конфигурация \ .settings \ org.eclipse.equinox.p2.metadata.repository.prefs
Механизм

p2 используется для обновления самого eclipse через сайт обновления eclipse 3.4 и ссылки в этих файлах '.prefs' на строку типа:

Хранилища / файл: _C: _jv_eclipse_eclipse-SDK-3,4-win32_eclipse / URL = Файл: / C: /jv/eclipse/eclipse-SDK-3.4-win32/eclipse/

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

Есть ли у вас какие-либо мысли / советы / советы по этому поводу? (т. е. о том, как находить, извлекать и обновлять полную структуру, необходимую для полной установки затмения, чтобы запустить эту установку локально)

Ответы [ 2 ]

11 голосов
/ 03 апреля 2009

Да, вы можете указать расположение хранилища, если используете p2.director

это, например, фрагмент сценария, который я использую для установки затмения (Ganymede) из локальной копии репозитория Ganymede

./eclipse\
      -nosplash -consolelog -debug\
      -vm "${VM}"\
      -application org.eclipse.equinox.p2.director.app.application\
      -metadataRepository file:${SHARED_REPOSITORY_DIR}\
      -artifactRepository file:${SHARED_REPOSITORY_DIR}\
      -installIU "${4-org.eclipse.sdk.ide}"\
      -destination "${3}"\
      -profile "${1}"\
      -profileProperties org.eclipse.update.install.features=true\
      -bundlepool ${SHARED_BUNDLEPOOL_DIR}\
      -p2.os linux\
      -p2.ws gtk\
      -p2.arch "${2}"\
      \
      -vmargs\
        -Xms64m -Xmx1024m -XX:MaxPermSize=256m\
        -Declipse.p2.data.area=${SHARED_P2_DIR}

Вот несколько ссылок на использование p2 Director

http://eclipse.dzone.com/articles/understanding-eclipse-p2-provi
http://wiki.eclipse.org/Equinox_p2_director_application

1 голос
/ 08 октября 2008

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

...