如何在Apache Felix OSGi Framework中更新Bundle

时间:2011-07-21 00:50:28

标签: osgi bundle apache-felix pax-runner

我从gogo shell更新我的捆绑包时遇到了麻烦。 我在终端上运行gogo shell。我的捆绑包在那里很活跃。

现在当我对代码进行更改时,需要采取哪些步骤将这些更改转发到正在运行的OSGi框架中?

我运行了更新<bundleId>但没有任何反应。它仍然运行在我启动框架时编译的相同版本。 在更新命令之前,我打开了另一个终端并运行mvn clean install(我正在使用maven-bundle-pluginpax-construct)。

2 个答案:

答案 0 :(得分:2)

使用Maven时,我检查更新代码的工作流程涉及两个终端。

  • 更新代码后,我从项目中运行mvn install,这将构建实际的包。跟踪系统上构建目标软件包的绝对位置。
  • 在正在运行的框架中,我更新了包,给它一个URL;像update 25 file:///Users/you/project/bundle/target/bundle.jar
  • 之类的东西

如果你有空而不使用Maven和Pax Runner,你也可以看看bndtools这是一个Eclipse插件。然后,您仍然可以获取bndtools为您构建的包,并使用Pax Runner运行它们。

答案 1 :(得分:0)

另一个尝试是通过OBR本地回购如下:
- 假设工件被称为test-api,那么
a)g! deploy test-api部署在id:25下
在对代码进行进一步更改后mvn clean install执行:
1)g! update 25
2)g! refresh如果在步骤1)之前没有结果,请尝试g! repos refresh file:///c:/Users/.m2/repository.xml刷新本地OBR回购