Определите сайты обновлений в файле config.ini

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

В рамках этого я хочу убедиться, что наши сайты обновлений включены, но как я могу это сделать?

Если я решу экспортировать настройки обновления сайтов не включены. Я могу экспортировать сайты обновлений со страницы настроек и получать с ними файл XML, но как я могу включить его в мой файл config.ini? Или есть какой-то другой способ?

Цель состоит в том, чтобы, когда пользователь запускает пользовательский продукт Eclipse, наши сайты обновлений будут в списке сайтов. В идеале, единственные в списке.

2 ответа

Решение

Вы можете добавить p2.inf файл, который инструктирует определенные сайты обновлений при установке:

instructions.configure=\
addRepository(type:0,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);\  addRepository(type:1,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);

Это добавит www.eclipse.org/equinox/p2/testing/updateSite,

Этот файл (p2.inf) должен идти в том же каталоге, что и ваш MANIFEST.MF файл. Вы можете прочитать больше об этом здесь.

Поскольку есть вероятность, что мне придется сделать это снова, и я не помню, как это сделать в следующий раз, я запишу шаги, которые я прошел:

Я создал файл p2.inf с инструкциями;

instructions.configure=\
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);`

Согласно Eclipse wiki, файл inf может быть помещен в тот же каталог, что и мой feature.xmlвот так я и сделал.

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

После завершения сборки в хранилище был файл content.jar. Внутри content.jar был файл content.xml. Изучив его, я смог найти:

<touchpointData size='1'>
   <instructions size='1'>
     <instruction key='configure'>
       org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(<all my update sites>);
     </instruction>
   </instructions>
 </touchpointData>

Итак, это подтвердило, что экспорт действительно увидел мой файл p2.inf и что-то с ним сделал.

Для установки из репозитория я использовал скрипт Eclipse Director:

cmd /c "C:\Program\Eclipse\director\director -consoleLog -bundlepool c:/program/eclipse/eclipse3.6_custom -profileProperties "org.eclipse.update.install.features=true" -i MyProduct.Product -r "file:/C:\eclipse\exported\repository" -d c:/program/eclipse/eclipse3.6_custom -p helios"`

Скрипт установил продукт из репозитория в место назначения.

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