你能参考 Tycho 通过 groupId、artifactId 和版本解析的 OSGi 依赖项吗?

Can you reference OSGi dependencies resolved by Tycho by groupId, artifactId and version?

在 Tycho 构建中,OSGi 依赖项通常在各个模块(例如 Eclipse 插件)的 MANIFEST.MF 中指定。据我所知,Tycho 识别了这些依赖关系,在构建时解决了它们并 adds them to the maven build model(很抱歉回溯机器 link;Tycho 网站目前似乎正在经历一些变化)。

是否可以在其他maven插件中引用这样的派生依赖?例如,如果我想用 maven-dependency-plugin 复制特定的依赖项,我怎么知道我必须提供哪个 groupId、artifactId 和版本?

Tycho 有自己的依赖解析机制,这与 Maven 的不同。 Tycho 从 p2 存储库而不是 Maven 存储库(至少通常*)加载清单中定义的依赖项。 Maven 工件和 p2 包具有不同的 meta-data 结构,因此您不能总是将它们相互映射。例如 bundle 没有 group/artifact ID 的概念。

常规 Maven 插件只能处理常规 Maven 依赖项。 p2 工件对他们不可见。

根据您要实现的目标,您可以尝试先将 p2 包转换为 Maven 依赖项,然后使用 Maven 插件处理它们。对于您的具体示例,如果您不介意将构建分成多个步骤,这可能会有所帮助:Use dependencies from Eclipse p2 repository in a regular Maven build?

* 您可以使用 pomDependencies=consider 配置 Tycho 以包含 Maven 工件。这些对于常规的 Maven 插件是可见的,但我不建议这样做,它使得 building/deploying 构建越复杂变得越难