【发布时间】:2012-03-29 08:07:08
【问题描述】:
我开发了一个 Eclipse RCP 应用程序,它大量使用了 OSGi 包,这些包提供服务供以后使用。用例要求捆绑包注册其服务(例如导入过滤器),以便稍后在不同情况下使用。 OSGi 捆绑包是使用 maven-bundle-plugin 构建的。
如何让 Equinox 自动启动 OSGi 包?通过 Activator 的正常方法不起作用。只有惰性模式有效,但我无法触摸未知包中的类。我阅读了 OSGi 规范,并没有提供与延迟加载相反的急切加载。是否还有机会将捆绑包标记为自动加载?
在 Eclipse 中,我有机会将 Auto-Start 设置为 true,但是在 Maven 和 Tycho 构建的发行版中我该怎么办?
由于未加载 org.eclipse.equinox.ds 的问题,声明式服务无法运行。我可以以某种方式启动它而不是激活器吗?这也是一个解决方案,但我不知道如何构建发行版或设置什么配置。
这里有哪些最佳做法?还有其他可能吗? Eclipse 平台上的 OSGi 包的文档有点薄。
【问题讨论】:
-
我不了解 maven/tycho。但是如果你使用 pde ant 脚本,它会使用
config.ini来控制自动启动。查看workspace\.metadata\.plugins\org.eclipse.pde.core\your-rcp-product-name.product下生成的config.ini。
标签: eclipse eclipse-plugin eclipse-rcp osgi