在Eclipse中编译和运行OSGI应用程序

时间:2012-08-29 14:10:16

标签: eclipse maven-2 compilation osgi bundle

我们的企业应用程序的基础是OSGI,我们有几个逻辑上是OSGI捆绑的Java项目。我们使用Maven来编译使用Maven Bundle插件的应用程序。但是这个过程非常耗时,无法调试应用程序。我们还使用Runner和Pax(:provison)插件来运行应用程序。如果我们可以依赖Eclipse的Auto构建功能并调试应用程序,它将使我们的生活变得更加容易。有没有办法配置Eclipse能够编译(并可能运行)基于OSGI的应用程序?

4 个答案:

答案 0 :(得分:5)

我不完全确定我是否了解你,但这里也是。

好吧,只要您的捆绑包驻留在PDE感知项目中或至少在您的目标平台上,在Eclipse中运行/调试OSGi应用程序非常简单。

您是否拥有所有捆绑包的来源?没有源代码的调试并不是那么有用。如果您这样做,是否可以将捆绑包的所有源导入Eclipse工作区?

否则您可以创建target platform,将所有捆绑包添加到其中。 (作为第一次尝试,我会说将所有捆绑包转储到目录中并指向目标平台)

无论哪种方式,那么你应该能够运行(或调试) - > OSGi框架 - >新 - >选择你的捆绑包 - >开始

您可以从平台和目标平台中选择捆绑包。

答案 1 :(得分:3)

对于构建,您可以使用Eclipse Plugin Development Environment (PDE)。尽管它的名称,它并不特定于构建Eclipse插件,可用于处理纯OSGi包。 Eclipse插件是带有一些附加功能的OSGi包。

无法帮助您运行或调试部分,虽然我知道一些面向企业的OSGi平台提供了PDE的扩展。

答案 2 :(得分:1)

如果您已经在使用maven bundle插件,您可能会发现PDE的清单优先方法不适合您现有的代码优先构建(我假设最后您需要一个IDE构建用于开发和调试,以及用于持续集成和自动化测试的命令行构建。

你有两个选择。正如其他人所建议的那样,您可以使用Eclipse的集成PDE,并使用Tycho进行maven构建。 Tycho使用PDE使用的相同数据,因此您不必多次写下来。或者,您可以坚持使用maven bundle插件并在Eclipse中使用bndtools。与bundle插件一样,bndtools是代码优先的,所以你不必担心维护清单。但是,您可能会发现bndtools中的功能集并不像PDE中那么大,我建议您仍然手动检查您的清单,以确保您了解正在生成的内容。无论你喜欢清单优先还是代码优先都是一个激烈的哲学辩论。

答案 3 :(得分:1)

看看bndtools。 bndtools使用与maven bundle插件相同的bnd。你甚至可以和m2e一起使用bndtools。 bndtools可从Eclipse市场购买。