用于pipe理/托pipe自己的p2存储库的工具?

我们公司使用Maven。 我们使用Nexus存储库pipe理器来存储我们的快照和发布。

目前,我们正在开发基于Eclipse的产品。 我们用Tycho来做到这一点。

问题如下:在我们基于Eclipse的产品中,我们有许多function。 我们的想法是分别build立每个function(或function组),并把它们放在内部的p2仓库中。 当一个function需要另一个function时,我们将目标平台指向必要的内部p2存储库。

目前,我们与第谷build立应用程序。 我们使我们的function“可部署”,所以第谷公司生产了一个P2站点的target 。 我们将该P2站点推送到我们的服务器,然后运行Eclipse FeaturesAndBundlesPublisher ,它将最近构build的function与P2存储库合并。 因此,我们有一个内部的P2存储库,其中包含所有需要的function版本。

我们发现这个过程太麻烦了。 有像Nexus这样的工具,会更方便吗?

UPD。:有关于Tycho Users列表的讨论

使用Unzip Repository插件 ,您可以使用Nexus在Tycho版本之间交换二进制文件。

  • Tycho项目A像普通的Maven项目一样发布其构件:该项目使用mvn clean deploy构build,该构件将项目的构件上载到 Nexus上的部署Maven存储库中。 唯一的特殊要求是项目build立一个p2仓库。 推荐的方法是使用eclipse-repository模块,但在大多数情况下,“可部署的function”也应该可以工作。

  • 在您的Nexus上,您只需要进行以下一次性configuration:对于部署Maven存储库(或包含该存储库的“存储库组”),您需要添加一个types为“Unzip Repository”的虚拟存储库。 此虚拟存储库以解压缩的forms显示来自部署存储库的zip工件。

    示例:如果项目A的p2存储库zip位于http://nexus.corp/nexus/repositories/build.milestones/corp/example/project-a/project-a-repo/1.0.0/project-a-repo-1.0.0.zip的部署Maven存储库中http://nexus.corp/nexus/repositories/build.milestones/corp/example/project-a/project-a-repo/1.0.0/project-a-repo-1.0.0.zip ,它将以解压缩库中的标准p2存储库格式提供,位于http://nexus.corp/nexus/repositories/build.milestones.unzip/corp/example/project-a/project-a-repo/1.0.0/project-a-repo-1.0.0.zip-unzip/

  • Tycho项目B可以通过将后一个URL添加到目标平台 (例如在目标定义文件中)来引用来自项目A的工件。

在上面的例子中,项目B引用了项目A的发行版本。同样的方法也适用于快照,因为解压缩存储库支持“符号”版本 ,例如最后部署的1.1.0-SNAPSHOT的1.1.0-SNAPSHOT或即使只是SNAPSHOT的整体最高版本。 使用这些符号版本,项目B可以(例如在其自己的CI构build中)通过在其目标平台中添加(稳定的!)p2存储库URL来引用CI构build结果项目A.

免责声明 :Unzip Repository插件是Tycho项目的一部分,我是一个提交者。

也许这有点晚了,但我目前正在开发一个开源(EPL)存储库pipe理器,它支持使用maven和tycho部署到存储库的工作stream程,并将其作为P2存储库使用。

也可以部署maven创build的包(不是maven tycho),P2元数据将自动生成。

该项目被称为“包无人机”,并在github上托pipe 。 还有一个简短的介绍video 。