听起来你想要dev:watch命令。从文档中:
watch 命令可用于在开发时提供帮助。它允许您配置一组将被监视的 URL。与给定 URL 匹配的所有捆绑包位置将自动更新。这避免了手动更新捆绑包甚至在需要时将捆绑包复制到系统文件夹的需要。请注意,只有基于 maven 的 url 和 maven 快照实际上会自动更新,所以如果你运行
开发:观看 *
它实际上将监视所有位置与 mvn:* 匹配且 url 中包含“-SNAPSHOT”的包。
从 Karaf shell 执行“dev:watch --help”将列出其可用的标志和参数。
类似的东西是PAX 插件
如果您有 Eclipse 的 m2 maven 插件,那么其中任何一个都可以很好地工作。
更新:在我的公司中,我们努力尽可能地实现 TDD,因此在没有明确启动 Karaf 的情况下完成了很多开发。在单元测试的正常组合中,我们还使用Pax Exam,即使在 Eclipse 中运行也非常棒 =)
这有助于确保我们在使用 Equinox/Felix/Concierge 运行时不会过于拘泥于任何 Karaf 细节(所以我模拟了我们依赖的各种 Karaf 细节,例如 JAAS 身份验证)。与许多其他很酷的工具/功能一起,它能够配置 Karaf 功能并使用 TinyBundles,您甚至可以动态创建捆绑包(再次用于模拟/存根)。
Pax Exam通过提供 JUnit @Runner 与 JUnit 框架挂钩,最新版本 (2) 速度更快,并且具有基于 DSL 的 API,因此测试非常简洁易读。
使用Pax Exam为我们提供了良好的测试覆盖率和较短的开发时间。如果测试不太实用,或者我们正在寻找测试中没有出现的错误,那么 dev:watch 命令是非常宝贵的。
总之; IMO,您绝对应该通过测试来推动您的开发(Pax Exam将很好地融入您现有的构建,一旦您习惯了它,您会发现开发更快)。您可以立即开始使用dev:watch命令,它肯定会加快您当前的情况。
更新 2:在回答另一个问题时,我添加了一个测试 ComponentFactory 的 maven 示例 Pax-Exam。测试驱动开发可以说是当今开发人员可用的最有效的工作流程。链接到问题:osgi:使用 ServiceFactories?并链接到源代码:http ://dl.dropbox.com/u/2465717/net.earcam.example.servicecomponent_2011-08-16_15-52.tgz