2017-06-20 67 views
4

我想更高效地开发使用karaf的OSGi包。高效的Karaf开发过程

我的理想的过程将是:

  1. karaf在后台运行
  2. 部署我所有的捆绑和依赖关系(脚本)
  3. 化妆karaf观看任何改变我的本地Maven回购我的包
  4. 包&安装单独的文物,让karaf重新加载它们

目前,我使用卡拉夫装配进行生产,但是这不允许我观察当地的Maven回购,因此每个生产周期都需要停止并组装完整的卡拉夫装置,然后再次运行,这很慢并且效率低下。

我还有一个描述所有依赖关系的特性,如果我可以重用它而不是手动声明所有的依赖关系,那将是非常棒的。

任何建议如何用卡拉夫来完成这个任务?

p.s.这个过程可以使用Gradle完成吗?

回答

2

最简单的方法是启动karaf clean并安装您的功能。当然你可以编写这部分脚本。您可以输入bundle:watch *。这会监视您当地的Maven回购以了解SNAPSHOT捆绑包中的更改。

如果您现在在单个捆绑项目上执行mvn clean install,捆绑会自动更新。

你也可以用karaf debug启动karaf。这启动了启用远程调试的karaf。所以你可以简单地使用eclipse到端口5005做一个调试会话。这也适用于Bundle:watch above。在调试时,您可以更改代码并在捆绑项目上运行mvn clean install,并使用更改后的捆绑包继续进行调试。当然,你会放弃更改后的包的状态,但系统的其余部分不变。

请注意,该套件仅适用于套件未在karaf系统文件夹中部署的情况。所以,如果你开始一个自定义的karaf发行版,那么你的软件包将不会被更新。这可以通过简单地从系统目录中删除这些文件来解决,因为它们将从本地maven仓库中获取。当您使用karaf自己的代码时,这非常方便。

+0

谢谢!所以如果我使用功能安装,这也将与手表一起工作?我不需要手动安装每个软件包? – Gadi

+0

是的..它通过功能安装正常工作。 –

+0

我没有接受这个答案,因为我无法得到这个工作。观看*似乎没有重新加载部署到本地Maven回购的捆绑包。 – Gadi