Как настроить проект BND, начиная с enRoute, для запуска на ApacheFelix и OSGI 6? - PullRequest
0 голосов
/ 02 мая 2019

Я пытался следовать учебникам из enRoute, а затем настроить их для OSGI 6.

У меня есть топ-проект, сгенерированный как проект enRoute, и он имеет enRouteзависимости и плагины bnd maven.У меня добавлены дополнительные зависимости : osgi.core: 6.0.0, org.apache.felix.gogo.runtime, shell, console

Также есть модуль Maven, созданный как enRoute Application.и он использует верхний проект в качестве родительского и импортирует оттуда дополнительные зависимости.

После запуска пакета mvn на модуле я получаю некоторые ошибки:

[ОШИБКА] Не удалось выполнить цель biz.aQute.bnd: bnd-export-maven-plugin: 4.1.0: экспорт (по умолчанию) для проекта my-bundle: null: MojoExecutionException:

До этогоNullPointer, я вижу, что bnd / maven пытается собрать зависимости и находит мои вещи: example.my-project.my-module, osgi.core, org.apache.felix.framework, org.apache.felix.gogo.shell и т. д.

[DEBUG] my-module: добавление ресурса javax.servlet-api version = 3.1.0 version = 9.4.15.v20190215 [DEBUG] my-модуль: добавление ресурса org.apache.commons.fileupload version = 1.3.3 [DEBUG] my-module: добавление ресурса org.apache.commons.io version = 2.6.0 [DEBUG] my-module: добавление ресурса org.apache.felix.http.servlet-api version = 1.1.2 [DEBUG] my-module: добавление ресурса org.apache.felix.framework version = 6.0.2 [DEBUG] my-module: добавление ресурса example.my-project.my-module версия = 1.0.0.201905020747 [DEBUG] my-module: список (ноль) [org.apache.felix.http.jetty, org.apache.felix.gogo.shell, org.apache.felix.http.servlet-api, jaxb-api, osgi.core, org.apache.felix.framework, javax.servlet-api, example.my-project.my-module, org.osgi.service.http.whiteboard, org.apache.felix.gogo.command, org.apache.felix.configadmin, org.osgi.service.log, org.apache.felix.gogo.runtime, org.apache.felix.webconsole]

Затем Maven пытается обновить пакеты выполнения с ошибкой:

[DEBUG] init [DEBUG] Строка пуста, args = C:/workspace/my-project/my-module/target/tmp/export/my-module/cnf/cache/4.1.0/bnd-cache [DEBUG] Оригинальный -runbundles был: \ org.apache.felix.gogo.shell; версия = 1.0.0, \ org.apache.felix.gogo.runвремя; версия = 1.0.10, \ org.apache.felix.gogo.command; версия = 1.0.2, \ org.apache.felix.webconsole; версия = 4.3.4, \ org.apache.felix.http.jetty; version = 4.0.6, \ org.apache.felix.http.servlet-api; version = 1.1.2 [DEBUG] Resolved -runbundles is: null

Исходные -runbundles были заполнены мнойрукой, как я пытался помочь BND.Но BND не обновлялся новыми (фактически, он вообще не обновлялся)

  1. Это правильный способ включить новые пакеты в ваш проект?Чтобы добавить их в качестве зависимостей (а позже плагины maven из bnd обновят мои файлы .bndrun с записями в -runbundles)?
  2. Какой плагин обновляет -runrequires в .bndrun и куда мне поместитьзаписи для их чтения BND?
  3. Тот же вопрос для -buildpath в .bndrun
  4. Тот же вопрос для -runfw в .bndrun
...