Mak*_*kin 40 eclipse p2 nexus tycho maven
我们公司使用Maven.我们使用Nexus存储库管理器来存储我们的快照和版本.
目前,我们正在开发基于Eclipse的产品.我们用Tycho来做那件事.
问题如下:在我们基于Eclipse的产品中,我们有许多功能.我们的想法是分别构建每个功能(或功能组)并将它们放在内部p2存储库中.当一个功能需要另一个功能时,我们将目标平台指向必要的内部p2存储库.
目前,我们用Tycho构建应用程序.我们使我们的功能"可部署",因此Tycho生产了一个P2站点target.我们将P2站点推送到我们的服务器,然后运行Eclipse FeaturesAndBundlesPublisher,它将最近构建的功能与P2存储库合并.因此,我们有一个内部P2存储库,其中包含所有必需功能的版本.
我们发现这个过程太麻烦了.是否有像Nexus这样的工具,哪个更方便?
UPD .: 有关Tycho用户列表的讨论
使用Unzip Repository Nexus插件,您可以使用Nexus在Tycho构建之间交换二进制工件.
Tycho项目A发布其工件,如普通的Maven项目:项目是使用构建的mvn clean deploy,它将项目的工件上传到Nexus上的部署Maven存储库.唯一的特殊要求是项目构建一个p2存储库.建议的方法是使用eclipse-repository模块,但在大多数情况下,"可部署功能"也适用.
在Nexus上,您只需要以下一次性配置:对于部署Maven存储库(或包含该存储库的"存储库组"),您需要添加"Unzip Repository"类型的虚拟存储库.此虚拟存储库以解压缩的形式显示部署存储库中的zip工件.
示例:如果项目A的p2存储库zip位于deploy 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,则它将在Unzip Repository中以标准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的发布版本.同样的方法也适用于快照,因为Unzip Repository支持"符号"版本,就像1.1.0-SNAPSHOT上次部署的1.1.0-SNAPSHOT一样,甚至只是SNAPSHOT整体最高版本.然后,使用这些符号版本,项目B可以在其自己的CI构建中通过在其目标平台中添加生成的(稳定的!)p2存储库URL来引用CI构建结果项目A.
免责声明:Unzip Repository Nexus插件是Tycho项目的一部分,我是其中的一名提交者.
| 归档时间: |
|
| 查看次数: |
6895 次 |
| 最近记录: |