5

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

4

4 回答 4

5

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

好吧,在 Eclipse 中运行/调试 OSGi 应用程序真的很容易,只要您的包驻留在 PDE 感知项目中或至少在您的目标平台上。

你有所有捆绑包的来源吗?没有源代码的调试并不是那么有用。如果你这样做了,你能把你的包的所有源代码导入你的 Eclipse 工作区吗?

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

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

您既可以从或目标平台以及您的工作区中选择捆绑包。

于 2012-08-29T16:27:00.650 回答
3

对于构建,您可以使用Eclipse 插件开发环境 (PDE)。尽管有它的名字,但它并不是专门用于构建 Eclipse 插件,并且可以用于处理纯 OSGi 包。Eclipse 插件是带有一些附加功能的 OSGi 包。

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

于 2012-08-29T15:46:24.237 回答
1

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

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

于 2012-08-30T06:23:45.363 回答
1

看看 bndtools。bndtools 使用与 maven bundle 插件相同的 bnd。您甚至可以将 bndtools 与 m2e 一起使用。bndtools 可从 Eclipse 市场获得。

于 2012-08-30T06:34:12.593 回答