2013-08-16 2 views
2

Я пытаюсь использовать мой устаревший код в своем приложении Eclipe-RCP. Я взял все мои старые проекты maven с зависимостями и использовал maven-bundle-plugin для создания пакета osgi.Как создать репозиторий p2 из существующего пакета osgi?

Теперь у меня все обернуто в новую банку osgi.

Как создать сайт обновления p2 из этой банки osgi для использования с tycho и целевой платформой eclipse?

Я пробовал: https://docs.sonatype.org/display/TYCHO/How+to+make+existing+OSGi+bundles+consumable+by+Tycho

Если я кладу получившиеся файлы на веб-сервер затмении не распознает его как «Программное обеспечение сайта».

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

Есть ли способ использовать Maven (Tycho)/Gradle для автоматического создания сайта обновления p2 из существующего пакета osgi?

ответ

3

Я всегда использую эти две команды для создания хранилища p2:

java -jar %ECLIPSE_HOME%\plugins\org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file:/C:/repository -artifactRepository file:/C:/destination -source /C:/source -configs gtk.linux.x86 -compress -publishArtifacts 

где c:/source хранятся мои связки, а затем

%ECLIPSE_HOME%/eclipse -debug -consolelog -nosplash -verbose -application org.eclipse.equinox.p2.publisher.CategoryPublisher -metadataRepository file:C:/destination -categoryDefinition file:C:/source/category.xml 

C:/source дерево, как это

source 
-- feaures 
-- plugins 
-- category.xml 

, и вам понадобится файл category.xml. группируйте свои пакеты по категориям. Это содержательная категория в

<?xml version="1.0" encoding="UTF-8"?> 
<site> 
    <category-def name="all" label="P2 Repo"/> 
    <iu> 
     <category name="all"/> 
     <query><expression type="match">providedCapabilities.exists(p | p.namespace == 'osgi.bundle')</expression></query> 
    </iu> 
</site> 

в зависимости от вашего затмения версии, возможно, вам необходимо изменить версию этого файла org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar

+0

если используется первая команда, создается каталог artifacts.jar, content.jar и plugin с моими пакетами. если я использую вторую команду после первого ничего не происходит , если я удалю все в каталоге назначения, вторая команда создает файл content.xml, который не создан. Сначала я использую первую команду? Думаю, я что-то пропустил? И как предотвратить закрытие окон, я не могу ничего прочесть? –

+0

Да, это ваш репозиторий p2.eclipse откроет и прочитает 'content.jar'. Вам нужно запустить обе команды и ничего больше. Вторая команда будет «публиковать» ваши артефакты. нет необходимости удалять все. –

+0

Почему content.xml не сгенерирован, если присутствуют артефакт.jar, content.jar и каталог плагина? Если я поставлю файл artifacts.jar, content.jar и плагин с моими пакетами на моем веб-сервере, eclipse ничего не найдет :( –

1

Вы также можете оставить эти OSGi расслоения (и вложения источника Maven) для Package Drone , хранилище OSGi с открытым исходным кодом, над которым я сейчас работаю.

Он позволяет разворачивать или вручную загружать артефакты OSGi из Maven Tycho, простой Maven или вручную, и позволяет ему создавать метаданные OSGi. Он также позволяет получить доступ к этому репозиторию с использованием P2, чтобы он использовался из Eclipse PDE или снова из Maven Tycho.

0

Используя этот подход, содержимое p2-репозитория не становится видимым из-за отсутствия свойства. Добавить p2.inf в META-INF, содержащий: properties.0.name = org.eclipse.equinox.p2.type.group properties.0.value = истина

Затем сгенерированный content.xml содержит это свойство, и IUGroupQuery возвращает это устройство.

Смежные вопросы