所以我们有以下场景
我们有在非 osgi 环境中使用 Maven 和 Intellij 的项目,然后我们有在 osgi 环境中使用 eclipse 的项目。 Eclipse 项目正在开发 RCP 应用程序,因此使用插件架构 (OSGI)。
所以我们有: 项目 A – 非 Osgi 环境中的 Maven 组织项目 项目 B – maven tycho 用于创建应用程序,但使用 eclipse 项目结构和目标平台等。 项目 C – maven 组织的具有 maven 依赖项的项目应该在项目 A 和 B 中都有效。
我们还安装了带有 p2-plugin 的 Nexus,以便 maven-tycho 可以工作。
我们遇到的大问题是,我们无法弄清楚如何构建项目 C,以便它对项目 A 和 B 都没有问题。在项目 A 中,我们希望 Maven 能够像往常一样工作并消除依赖关系如所须。但我们也希望项目 B 具有该功能(也许结合 Nexus+Tycho?)。
我们应该如何解决这个问题。我还没有找到如何做到这一点的好解决方案。我已经在 Maven 中尝试过 apache felix 捆绑插件,但无法让它按我想要的方式工作。这是正确的解决方案吗?
最佳答案
我认为你最好的选择是使用 Nexus P2 Repository Plugin .
您可以使用 maven-bundle-plugin
为项目 C 开发和部署标准 OSGi bundle ,这些 bundle 可由项目 A 通过 maven 构建直接使用。
然后,通过使用 Nexus P2 存储库插件,您还可以将这些 OSGi 包公开为标准 P2 存储库,项目 B 可以通过 tycho 构建使用该存储库。
关于eclipse - Maven 与 OSGI 和非 OSGI 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12741572/