我尝试按照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并没有更新新的(实际上,它根本没有更新)