繁体   English   中英

没有p2的第谷

[英]Tycho without p2

是否可以使用Tycho而不使用p2下载依赖项或在其中发布生成的工件?

我已经有一个具有所有依赖项的Maven存储库,并且我不想拥有一个带有重复工件的p2存储库,只是为了编译这些osgi项目。 我还想将生成的工件发布在同一Maven存储库中,这样我就可以拥有一个真正的集中存储库,而不是Maven存储库和p2存储库。

所以基本上,我想从构建中删除对p2的需要。

我知道一个选择是使用POM-first工具代替tycho,但是问题是项目已经使用PDE开发,因此这似乎不是一个选择

Tycho可以很容易地在Maven存储库中使用OSGi捆绑软件:只需在pom.xml中通过其GAV指定对捆绑软件的依赖关系,然后设置pomDependencies=consider选项(请参阅本文档 )。 然后,Tycho将把这些工件用于所有构建步骤:依赖关系解析,编译,RCP组装等。

关于pomDependency=consider的棘手部分是传递依赖关系:对于Tycho构建的任何工件,它都要求可以针对目标平台解析该工件的所有传递依赖关系。 使用pomDependency=consider ,Tycho将GAV工件及其所有传递Maven依赖关系添加到目标平台,但pomDependency=consider是该工件是OSGi捆绑包(因此为“ consider”)。 如果Maven依赖项之一不是OSGi捆绑包,则该库将不在目标平台中,因此Tycho的依赖项解析(在OSGi空间中)可能会失败。

问题的第二部分是关于通过Maven存储库分发Tycho工件。 可以将Tycho工件部署到Maven存储库,但是这些工件在Maven世界中并不是特别有用。 这是因为Tycho的工件通常在其POM中没有依赖性。 因此,要使用Maven构建中的Tycho工件(或类似地通过pomDependency=consider ),您需要在使用项目的POM中手动列出Tycho工件的所有依赖关系。

可以告诉Tycho使用POM依赖项 据我所知,唯一的“陷阱”是,如果您希望使用eclipse-repository打包类型来构建RCP应用程序,则这些仍需要存在于p2存储库中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM