所以我嘗試在我的項目中添加一個新的包。在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