如何设置以enRoute开头的BND项目以在ApacheFelix和OSGI 6上运行?

时间:2019-05-02 08:02:47

标签: osgi bnd enroute

我尝试按照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:export(默认)   项目my-bundle:null:MojoExecutionException:

在此NullPointer之前,我看到bnd / maven 正在尝试收集依赖项,并且确实找到了我的东西:example.my-project.my-module,osgi.core,org.apache。 felix.framework,org.apache.felix.gogo.shell等。

  

[DEBUG]我的模块:添加资源javax.servlet-api version = 3.1.0   版本= 9.4.15.v20190215 [DEBUG]我的模块:添加资源   org.apache.commons.fileupload版本= 1.3.3 [DEBUG]我的模块:添加   资源org.apache.commons.io version = 2.6.0 [DEBUG]我的模块:添加   资源org.apache.felix.http.servlet-api版本= 1.1.2 [DEBUG]   我的模块:添加资源org.apache.felix.framework version = 6.0.2   [DEBUG]我的模块:添加资源example.my-project.my-module   版本= 1.0.0.201905020747 [DEBUG]我的模块:列表(空)   [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尝试更新错误的Runbundles:

  

[DEBUG]初始化[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; version = 1.0.0,\     org.apache.felix.gogo.runtime; version = 1.0.10,\     org.apache.felix.gogo.command; version = 1.0.2,\     org.apache.felix.webconsole; version = 4.3.4,\     org.apache.felix.http.jetty; version = 4.0.6,\     org.apache.felix.http.servlet-api; version = 1.1.2 [DEBUG]已解决   -runbundles为:空

当我尝试帮助bnd时,我用手将原始的-runbundles装满了。但是BND并没有更新新的(实际上,它根本没有更新)

  1. 这是在项目中包括新捆绑软件的正确方法吗?要将它们添加为依赖项(以后,来自bnd的maven插件将使用-runbundles中的条目更新我的.bndrun文件)?
  2. 哪个插件可以更新.bndrun中的-runrequires,我该在哪里放置条目以使其被BND读取?
  3. .bndrun中-buildpath的相同问题
  4. .bndrun中-runfw的相同问题

0 个答案:

没有答案