【问题标题】:Debug Karaf bundles in Eclipse: persist dev:watch URLs/IDs?在 Eclipse 中调试 Karaf 包:坚持 dev:watch URLs/IDs?
【发布时间】:2012-10-01 15:48:56
【问题描述】:

我希望能够从 Eclipse 轻松调试在 Apache Karaf 中运行的 OSGi 包。到目前为止,我确定的最简单的方法是创建一个启动 Karaf 的 Java 应用程序启动器。如果之前安装了捆绑包,那么我可以设置断点,即使在激活器中,一切都很好。

问题是,当对代码进行更改时,调用 mvn install,然后调用 Eclipse Karaf 启动器,我正在运行捆绑包的旧缓存版本。我玩过从命令行运行 Karaf,使用 Maven URL 安装我的包,并成功使用 dev:watch。但我发现 dev:watch URL 没有保留。因此,当从 Eclipse 启动 Karaf 时,没有观察到的 URL(以前的 URL 在 Karaf 关闭时丢失)并且没有安装新版本的包。

有没有办法让 dev:watch URL 持久化?我寻找可能包含 URL 的属性,甚至是可用于指定 URL 的 Karaf 命令行选项,但没有运气。我什至尝试将 dev:watch 命令添加到 etc/shell.init.script,但我在 Karaf 启动时收到此消息“初始化脚本错误:找不到命令:dev:watch。”我认为这意味着该命令在 Karaf 启动序列中运行得太早(开发功能尚未启动?)。

任何帮助都将不胜感激,即使是我还没有考虑过的其他方法,可以轻松地从 Eclipse 调试在 Karaf 中运行的包。目的是避免每次代码更改时都需要使用 osgi:install 等手动命令。

【问题讨论】:

    标签: eclipse apache-karaf


    【解决方案1】:

    Karaf 团队现在也在努力与 EIK 进行更好的集成,但目前它还没有达到所需的深度集成。 因此,您提供的方式基本上是进行调试的最佳方式。 使用 maven 构建您的应用程序,在您的 karaf 启动并运行时执行 dev:watch。 由于 dev:watch 是一个“开发时间”命令,它并不打算持久化。但是您仍然可以选择历史记录,当然您可以为命令提供多个捆绑 ID。

    【讨论】:

      猜你喜欢
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-03
      相关资源
      最近更新 更多