Определите сайты обновлений в файле 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"`
Скрипт установил продукт из репозитория в место назначения.