以前我一直在使用 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 项目从其他一些项目(它们不属于同一个多项目)中找到依赖项。
任何让我走上正轨的想法或讨论都值得赞赏!