Gradle,OSGi和OBR(或其他存储库?)

Joh*_*röm 7 osgi obr gradle maven

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

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

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

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

我一直在寻找一些很好的解决方案,但我没有找到任何东西.

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

有人提到使用Nexus,但只有Nexus Pro从我能看到的东西支持OBR?

我也在寻找替代解决方案的建议; 主要目标是我将能够在Karaf中部署我的捆绑+ deps.虽然我需要某种方法让不同的Gradle项目从一些其他项目(不属于同一个多项目)中找到依赖项,但Maven根本不必使用.

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

ctr*_*ron 2

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

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