7

以前我一直在使用 Maven 和 maven-bundle-plugin 来存档以下内容:

  • 这样做时mvn install,本地 maven repo 会自动包含我的包 + 我的所有包的 deps
  • 本地 repo 成为 OBR 存储库mvn bundle:index,repository.xml 也会自动更新mvn install
  • 本地仓库现在可用于 Karaf 捆绑部署

现在,我希望将一些项目迁移到 Gradle,这在很多方面都非常好。我正在使用“org.dm.bundle”插件成功创建捆绑包(基本的“osgi”插件不允许我自动创建服务组件)。

通过使用 Gradle 的 maven 插件,我可以gradle install在本地 maven repo 中安装我自己的包。然后我可以使用bindex手动(或通过一些 gradle hacking)索引 repo。但是,我的依赖项没有放入 maven repo,它们只存储在 gradle 缓存目录中。因此,我还不能使用 OBR 存储库在 Karaf 中进行部署。

我一直在环顾四周,试图找到一些好的解决方案,但我没有找到任何东西。

我查看了 Karaf 功能文件,它允许我直接指定 mvn URL,而不是依赖 OBR,但我想避免手动弄乱功能文件。

有使用 Nexus 的参考,但据我所知,只有 Nexus Pro 支持 OBR?

我也愿意就替代解决方案提出建议;主要目标是我将能够在 Karaf 中部署我的 bundles + deps。真的不需要使用 Maven,尽管我需要一些方法让不同的 Gradle 项目从其他一些项目(它们不属于同一个多项目)中找到依赖项。

任何让我走上正轨的想法或讨论都值得赞赏!

4

1 回答 1

2

这可能有点晚了,但我只是在寻找一种OBR 存储库中使用 gradle 获取的方法时偶然发现了您的问题。

据我了解,您希望将 ( gradle deploy) 推送到某个 Maven 存储库并将其用作 OBR 存储库。这可以通过Eclipse Package Droneeclipse/packagedrone实现。您可以使用 Maven/Gradle deploy 进行部署,并让它生成 P2、OBR 和 OSGi R5 索引存储库。

于 2016-02-11T09:07:41.653 回答