我希望使用karaf更有效地开发OSGi包。
我的理想过程将是:
目前我使用karaf程序集进行生产,但这不允许我观看本地maven repo,因此每个构建周期都需要停止并组装完整的karaf发行版并再次运行它,这是缓慢而低效的。
我还有一个描述所有依赖项的功能,如果我可以重用它而不是手动声明所有依赖项,那将会很棒。
如何使用karaf完成此任务的建议?
P.S。这个过程可以使用Gradle完成吗?
答案 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自己的代码时,这非常方便。