0

我正在使用 maven 复制依赖项将我的 OSGI 捆绑包依赖项复制到某个位置。在我的依赖图中的某个地方,我有两个版本的相同工件,而 maven 的分辨率忽略了一个。无论如何,我可以避免这种情况并强制 maven 解决同一工件的多个版本?

4

2 回答 2

0

您可以在 maven-bundle-plugin 中使用 Embed-Dependency 标签,但这可能不是最好的方法。

我创建了这个博客,它详细解释了如何以多种方式处理这个 OSGi 问题,您可能想要选择最适合您的一个:http ://www.citizenrandom.com/?cat=2

于 2015-02-20T18:41:45.193 回答
0

maven 的核心功能之一是依赖中介。如果您有相同工件的两个版本,则图形 maven 将尝试找到最接近的版本(它不会“忽略一个”,而是决定使用另一个):

引用:

“依赖中介——这决定了当遇到一个工件的多个版本时将使用哪个版本的依赖。目前,Maven 2.0 仅支持使用“最近定义”,这意味着它将使用与您的项目最接近的依赖版本在依赖树中。”

与 OSGi 相反,您可以在不同版本中拥有相同的包,maven 将始终以工件仅存在于一个(最近的)版本中的方式解决依赖关系。如果这是不可能的(例如因为强制使用不同的版本),您将遇到冲突并且构建将失败。

于 2013-01-30T20:26:27.907 回答