Создать локальный сайт P2 из удаленных сайтов P2? - PullRequest
1 голос
/ 05 марта 2011

В eclipse я создал файл .target, в который я добавляю функции с удаленных сайтов eclipse p2.

Теперь я хотел бы создать локальный сайт p2, который является копией агрегированных функций, определенных в цели.определение (и желательно для всех сред).

Мне нужен этот локальный сайт p2 для использования с системой сборки, использующей maven3 / tycho, но я не нашел "стабильного" способа сделать это.Я пробовал следующее:

1) Экспорт целевого файла в локальный каталог.

Проблема: Не создает сайт p2 просто папку с функциями / плагинами.

2) Экспортируйте целевой файл в локальный каталог И запустите в каталоге приложение eclipse FeaturesAndBundlesPublisher.

Проблема: при этом создается сайт p2, но отсутствуют некоторые оригинальные функции / комплекты.

3) Использовал buckmeister для создания сайта p2 из функции, инициализированной из файла .target:

p2.site с использованием buckmeister

Проблема: оригинальные функции из содержимогофайл .target не сохраняется на полученном сайте p2.Особенно это проблема, если целевой файл содержит функцию: org.eclipse.equinox.executable.feature, эта функция будет отсутствовать на получающемся сайте p2.

4) Скопируйте содержимое:

workspace.metadata.plugins \ org.eclipse.pde.core.bundle_pool

Проблема: не является действительным сайтом p2.

Любое предложение о том, как создать рабочий (с неповрежденными функциями) локальный сайт p2 с удаленных сайтов p2?

Ответы [ 2 ]

2 голосов
/ 01 мая 2015

Вместо использования Ant вы можете запустить его прямо из командной строки:

eclipse -nosplash -verbose
  -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication
  -source http://download.eclipse.org/releases/luna
  -destination file:/temp/lunaclone

eclipse -nosplash -verbose
  -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication
  -source http://download.eclipse.org/releases/luna
  -destination file:/temp/lunaclone

Каждая команда, конечно, должна содержать одну строку при вводе.

Если вы используете систему Windows, путь назначения будет выглядеть как

  -destination file:C:/temp/lunaclone

Если вам нужна другая версия (-source), чем посмотрите Обновление проекта EclipseСайты

2 голосов
/ 05 марта 2011

Вы хотите использовать команду p2 mirror. Дайте ему URL удаленного репозитория и локальный каталог для зеркалирования. Вот макрос Ant для этого. Обратите внимание, что он выполняет два зеркальных вызова, так как большинство репозиториев p2 фактически являются двумя репозиториями в одном (артефакты и метаданные).

Требуется набор свойств "bootstrap.platform", который является местоположением установки Eclipse, p2 которого вы хотите использовать.

  <macrodef name="p2.mirror">
    <attribute name="source"/>
    <attribute name="destination"/>
    <sequential>
      <echo message="Mirroring repository @{source} to @{destination}..."/>
      <java classname="org.eclipse.core.launcher.Main" fork="true" failonerror="true">
        <classpath>
          <fileset dir="${bootstrap.platform}/plugins">
            <include name="**/org.eclipse.equinox.launcher_*.jar"/>
          </fileset>
        </classpath>
        <arg line="-application org.eclipse.equinox.p2.artifact.repository.mirrorApplication"/>
        <arg line="-source @{source}"/>
        <arg line="-destination @{destination}"/>
      </java>
      <java classname="org.eclipse.core.launcher.Main" fork="true" failonerror="true">
        <classpath>
          <fileset dir="${bootstrap.platform}/plugins">
            <include name="**/org.eclipse.equinox.launcher_*.jar"/>
          </fileset>
        </classpath>
        <arg line="-application org.eclipse.equinox.p2.metadata.repository.mirrorApplication"/>
        <arg line="-source @{source}"/>
        <arg line="-destination @{destination}"/>
      </java>
    </sequential>
  </macrodef>
...