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