所以我尝试在我的项目中添加一个新的包。在Eclipse Equinox中一切都很完美,但Maven(Tycho)构建存在问题。我的软件包在OSGi控制台中可见,其状态为启动,但在需要其服务时不会启动。我可以从OSGi控制台手动启动软件包,然后运行。之后我甚至可以重新启动我的应用程序,它仍然有效。OSGi包在maven构建后始终具有'开始'状态
当我进入bundles.info我可以看到这一行:
org.eclipse.orion.server.authentication.github,1.0.0.v20151013-0508,plugins/org.eclipse.orion.server.authentication.github_1.0.0.v20151013-0508.jar,4,false
如果我改变末尾,则它也可以“假”到“真”。如何配置我的包默认情况下为“真”?我的包(我们称之为A)背后的更大的故事是:它实现了一个在包B中定义的接口(因此A需要B)并在此接口下注册一个服务。该服务在B中使用(B在运行前不知道A)。我听说删除这种循环依赖可能会有帮助,但我不想修改B以避免合并冲突。
“Maven构建存在问题”:在Maven构建期间,您使用什么来启动容器?一个JUnit扩展插件还是一个Maven插件?什么是你的框架的开端?什么是你的捆绑的开始阶段? –
@BalazsZsoldos Maven使用Tycho并创建一个Equinox神器。项目中所有bundle的startlevel是4.但是,我不知道如何检查框架的startlevel。 – w10d