Проблема с файлом p2.inf при сборке продукта eclipse - PullRequest
0 голосов
/ 14 февраля 2011

У меня есть продукт затмения, который зависит от функции. Теперь я хотел бы иметь возможность обновить эту функцию. Я также хотел бы иметь возможность запустить приложение с предопределенным сайтом обновлений. Я создал файл p2.inf, который содержит (на основе: http://aniefer.blogspot.com/2009/07/composing-and-updating-custom-eclipse.html):

requires.0.name = com.application.feature.group
requires.0.range = [1.0.0.qualifier, 2.0.0.qualifier)

instructions.configure=\
  addRepository(type:0,location:https${#58}//ccp.com/);\
  addRepository(type:1,location:https${#58}//ccp.com/);

Но сайт обновлений ccp.com не отображается, когда я захожу в диспетчер установки в продукте сборки (он отлично работает, если я удаляю команды 'require').

Что-то не так с вышеуказанным файлом p2.inf?

Я сейчас попробовал:

requires.0.namespace=org.eclipse.equinox.p2.iu
requires.0.name = com.application.feature.group
requires.0.range = [1.0.0.qualifier, 2.0.0.qualifier)

instructions.configure=\
  addRepository(type:0,location:https${#58}//ccp.com/);\
  addRepository(type:1,location:https${#58}//ccp.com/);

но когда я его создаю, я получаю ошибку:

Cannot complete the install because one or more required items could not be found.
Software being installed:
MyProduct 1.0.0.201102161136 (com.application.product 1.0.0.201102161136) Missing requirement: 
MyProduct 1.0.0.201102161136 (com.application.product 1.0.0.201102161136) requires 'com.application.feature.group [1.0.0.qualifier,2.0.0.qualifier)' 
but it could not be found
Application failed, log file location: ...

Я также пытался удалить классификатор из файла p2.inf в диапазоне версий и в моей функции, но получаю ту же ошибку. Есть идеи?

Ответы [ 2 ]

1 голос
/ 15 февраля 2011

Попробуйте добавить

requires.0.namespace=org.eclipse.equinox.p2.iu

Я подозреваю, что отсутствие указания пространства имен оставляет его нулевым в парсере p2.inf, что в итоге приводит к ошибке подтверждения на Assert.isNotNull(namespace) или NPE.Любое из этих действий может привести к игнорированию всего файла p2.inf.

0 голосов
/ 02 апреля 2014

Я обнаружил, что мне нужно использовать опцию p2.context.repos для передачи в репозитории, содержащие элементы, упомянутые в p2.inf. Использование этого и pluginPath в тандеме было ключом.

...