0

我正在尝试使用 Maven 构建独立的 OSGI 应用程序。有几个包含“bundles”的子模块和一个“distribution”模块,它生成一个包含我的包、框架的包和所需配置文件的目录(zip)。后者将所有子模块和 OSGI 实现声明为依赖项(Felix 和 Equinox 的不同配置文件)并使用程序集插件将它们放在一起。

我只能成功构建和运行 Felix 版本,但由于未解决的导入或不兼容的包版本,它不可靠并且在依赖版本的任何修改后中断。

所以这是我的问题

  1. Maven 是否适合 OSGI 开发?
  2. 如何确定哪些版本的包对应于某些版本的 OSGI 规范并且相互兼容?

例如,如果我的包依赖于 osgi.core:5.0 运行时需要哪些 jars org.apache.felix.framework: 5.6.1 或 4.6.0 org.apache.felix.configadmin: 1.8.12 或 1.6.0

  1. Equinox 的正确工件名称是什么?

网上有 org.eclipse.equinox:cm:3.6... 和 org.eclipse.equinox:org.eclipse.equinox.cm:3.6..。

  1. Pax项目的状态如何?文档不多,很多链接都坏了。
4

1 回答 1

2

Maven 非常适合在 maven-bundle-plugin 或 bnd-maven-plugin 的帮助下构建包。

对于程序集,我建议使用 apache karaf 功能和软件包作为karaf 自定义发行版,或者使用 OBR 索引和使用 bndtools 的软件包

原因是 OSGi 需要查看 Manifest 的属性才能创建良好的部署。纯 maven 依赖项对此不起作用。

于 2016-12-23T23:58:12.200 回答