当前位置: 首页 > 知识库问答 >
问题:

如何在Karaf上频繁部署本地快照包?

唐哲
2023-03-14

我决定在OSGI和Karaf之上构建一个应用程序--我真的很喜欢这个东西。然而,我在本地开发机器上的日常部署有点吃力。我是说..我做了一个更改,然后我想在我的本地Karaf实例上测试它。每小时可能发生几次。

我现在做的方式是一个maven构建,它创建一个JAR包,然后将其复制到Karaf的deploy目录中。我认为这一点也不高雅。

我想找到一个绕过(谷歌)的方法。我读过关于Karaf的特性,但看起来,尽管它是部署整个应用程序的一个很好的机制,但它并不能解决我的问题。正如我所理解的那样,它不会检查我的快照jar的新版本是否出现在我的本地maven repo中,对吗?

共有1个答案

萧允晨
2023-03-14

使karaf的更新机制发挥作用的关键是从maven进行部署,而不是使用deploy文件夹。按如下方式安装您的捆绑包:

install -s mvn:groupid/artifactID/version

install -s mvn:groupid/artifactID/version/typeOfMavenArtifact

第二种方法对安装有用,例如WAR/WAB工件。完整的maven协议规范可以在这里找到。

那Karaf就知道那捆东西是从哪儿来的了。您还可以使用la-u检查这一点。这使得karaf显示更新位置,现在该位置应该是maven URI。您不会认为所有的karaf包都有这样的更新位置。

当您现在使用maven创建项目的新构建时,它将最终出现在您的本地maven存储库中。然后简单地运行

update <bundleid>

这使得karaf检查更新位置(在您的情况下是本地maven回购),并从那里重新加载包。

您甚至可以通过使用

dev:watch

或karaf 3+

bundle:watch

这将使karaf检查您的maven repo在它已部署的快照包中的更改,并自动重新部署这些。

这与远程调试一起工作也非常好。使用

export KARAF_DEBUG=true

在开始卡拉夫之前。然后它将监听端口5005上的调试器。

当我在karaf代码库中工作时,我也经常使用它,因为这也适用于大多数karaf自己的bundle。

 类似资料:
  • 我已经为karaf(4.0.1)创建了first project。到目前为止,我得到了以下信息: 使用构建的应用程序包。还会有更多... 使用创建的karaf特性。 使用相同插件创建的karaf-assembly 所以我已经做好了交付给客户的准备--但是我在开发过程中陷入了困境。这个问题几乎回答了我剩下的所有问题,除了一个: 在通过运行构建了我的项目之后,我想我应该能够使用类似命令这样的东西在本地

  • 我想继续向ServiceMix 6.0部署一个功能,它基于Karaf 3.0.4。 我第一次尝试使用karaf控制台。但也存在一些问题。对于标准的karaf安装,无法在karaf控制台上确定是否已经安装了功能(请参阅我的其他问题)。karaf控制台的另一个问题是它不支持退出代码。因此,无法可靠地确定功能安装是否成功完成。 然后我安装了hawtio,并试图通过与hawtio捆绑的jolokia/RE

  • 问题内容: 我想设置全局变量,例如: 这该怎么做? 问题答案: 最简单的方法是使用来告诉您的应用程序是在开发模式下运行(使用AppEngine SDK)还是在现场(正在生产中)运行: IsDevAppServer报告App Engine应用程序是否在开发App Server中运行。 另外,您也可以使用其中包含此信息以及您的App版本的信息,并合并为一个字符串: ServerSoftware返回Ap

  • 无法将快照工件部署到Nexus存储库。我一直收到返回代码400。无法部署项目:无法传输项目网络。iin:iin-web-0.0.1-snapshot:jar:iin-parent从/到快照(http://localhost:8081/nexus/content/repositories/snapshots/net/iin/iin-web-0.0.1-snapshot/iin-parent/iin-

  • 问题内容: 我正在尝试编写一个nodejs服务器,该服务器将花费一个时间输入(可能是url路径的一部分),然后在该时间索引处以jpeg图片的形式提供静止的视频帧。 我可以用普通的Javascript轻松地做到这一点,但是我看不到在nodejs中做到这一点的方法。我知道我可能需要使用像node- canvas这样的画布插件来做快照。 任何想法欢迎。 以下是我目前在Javascript中的处理方式:

  • 下午好啊 我是Spring和Spring Boot的新手,通常使用EclipseIDE和JSF。我在一个项目中工作,该项目在前端使用Angular,在后端使用Spring Boot。我有下面的Maven结构 前端生成一个webjar,它使用前端Maven插件构建Angular应用程序,后端依赖于这个webjar。后端pom。xml具有以下配置: 我不想使用嵌入式Tomcat服务器。在Intelli