【问题标题】:How to update Bundle in Apache Felix OSGi Framework如何在 Apache Felix OSGi 框架中更新 Bundle
【发布时间】:2011-07-21 00:50:27
【问题描述】:

我在从gogo shell 更新我的捆绑包时遇到问题。 我有一个gogo shell 在终端上运行。我的捆绑包在那里有效。

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

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

【问题讨论】:

  • OSGi 框架是否在您的计算机上运行,​​或者您是否与终端有远程连接?

标签: osgi bundle apache-felix pax-runner


【解决方案1】:

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

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

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

【讨论】:

  • 非常感谢!绝对类路径做到了。我之前尝试过使用 relative,但遇到了 I/O 异常。 (或者也许我拼错了..)
【解决方案2】:

另一种尝试是通过 OBR 本地 repo,如下所示:
- 假设工件被称为 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 存储库

【讨论】:

    猜你喜欢
    • 2016-07-04
    • 2013-03-23
    • 1970-01-01
    • 2018-05-14
    • 2014-09-18
    • 1970-01-01
    • 2011-11-23
    • 2010-12-25
    • 2016-10-13
    相关资源
    最近更新 更多