Tycho 可以很容易地在 Maven 存储库中使用 OSGi 包:只需在 pom.xml 中通过其 GAV 指定对包的依赖项并设置pomDependencies=consider
选项(请参阅此文档)。Tycho 然后将这些工件用于所有构建步骤:依赖解析、编译、RCP 组装等。
棘手的部分pomDependency=consider
是传递依赖:对于 Tycho 构建的任何工件,它要求工件的所有传递依赖都可以针对目标平台解决。使用pomDependency=consider
,Tycho 将 GAV 工件及其所有可传递的 Maven 依赖项添加到目标平台,但前提是工件是 OSGi 包(因此“考虑”)。如果 Maven 依赖项之一不是 OSGi 包,则该库将不在目标平台中,因此 Tycho 的依赖项解析(在 OSGi 空间中)可能会失败。
您问题的第二部分是关于通过 Maven 存储库分发 Tycho 工件。可以将 Tycho 工件部署到 Maven 存储库,但这些工件在 Maven 世界中并不是特别有用。这是因为 Tycho 的工件通常在其 POM 中没有依赖关系。因此,要使用来自 Maven 构建的 Tycho 工件(或类似地通过pomDependency=consider
),您需要在使用项目的 POM 时手动列出 Tycho 工件的所有依赖项。