具有OSGI依赖性的Maven

时间:2013-01-30 17:11:39

标签: maven osgi

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

2 个答案:

答案 0 :(得分:0)

mavens核心功能之一是Dependency mediation。如果您在图形上有相同工件的两个版本,maven将尝试找到最近的版本(它不会“忽略一个”但决定使用另一个版本):

引用:

  

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

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

答案 1 :(得分:0)

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

  

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

相关问题