高效的Karaf开发流程

时间:2017-06-20 07:59:42

标签: maven gradle continuous-integration osgi karaf

我希望使用karaf更有效地开发OSGi包。

我的理想过程将是:

  1. karaf在后台运行
  2. 部署我的所有捆绑包和依赖项(脚本)
  3. 让karaf观看我的maven本地回购以了解我的捆绑包中的任何变化
  4. 包&安装单个工件并让karaf重新加载它们
  5. 目前我使用karaf程序集进行生产,但这不允许我观看本地maven repo,因此每个构建周期都需要停止并组装完整的karaf发行版并再次运行它,这是缓慢而低效的。

    我还有一个描述所有依赖项的功能,如果我可以重用它而不是手动声明所有依赖项,那将会很棒。

    如何使用karaf完成此任务的建议?

    P.S。这个过程可以使用Gradle完成吗?

1 个答案:

答案 0 :(得分:2)

最简单的方法是启动karaf清理并安装您的功能。当然你可以编写这部分的脚本。

然后输入bundle:watch *。这会监视您当地的maven仓库以了解SNAPSHOT捆绑包的变化。

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

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

请注意该捆绑:仅当您的捆绑包未部署到karaf中的系统文件夹时才能使用。因此,如果您启动自定义karaf发行版,那么您的捆绑包将不会更新。这可以通过简单地从系统目录中删除这些文件来解决,因为它们将从本地maven仓库中获取。当你使用karaf自己的代码时,这非常方便。