Maven/Assembly插件中的双工件解析

Maven/Assembly插件中的双工件解析,maven,maven-3,maven-assembly-plugin,Maven,Maven 3,Maven Assembly Plugin,我们正在使用Maven3.0.5和汇编插件2.2-beta-3 当我们得到一个可传递的范围依赖项时,我们遇到了一个问题,即在编译和组装阶段,不同的版本得到了解决(我们在jar的manifest中有版本X,在tar.gz组装包中有版本Y) 问题:在编译+组装步骤中是否可以避免重复的工件解析,以便组装将使用与编译解析的工件相同的工件 UPD:看到了assembly 2.6的相同问题,可能会尝试为其构建一个最小的示例。您正在使用一个非常旧的maven assembly插件版本,版本2.2-beta-3

我们正在使用Maven3.0.5和汇编插件2.2-beta-3

当我们得到一个可传递的范围依赖项时,我们遇到了一个问题,即在编译和组装阶段,不同的版本得到了解决(我们在jar的manifest中有版本X,在tar.gz组装包中有版本Y)

问题:在编译+组装步骤中是否可以避免重复的工件解析,以便组装将使用与编译解析的工件相同的工件


UPD:看到了assembly 2.6的相同问题,可能会尝试为其构建一个最小的示例。

您正在使用一个非常旧的
maven assembly插件版本,版本
2.2-beta-3
来自

自那时以来,许多类似的问题都得到了解决,仅举一些例子:

  • :程序集插件对依赖项集的依赖项解析与maven依赖项解析不内联
  • :程序集误用depMgt并为存档选择了错误的依赖项
  • :程序集不鸣笛或
    指令
因此,我强烈建议至少升级到非测试版,即发布的2.2


较新版本的Maven和较新版本的assembly plugin是理想的解决方案,但这实际上取决于您对这些版本控制的严格限制(如果有的话)。

为什么要使用如此旧版本的assembly plugin(以及Maven)?使用最新的插件版本查看并使用这些版本…如果您有进一步的问题,请在用户列表中发送邮件,或者如果您认为您发现了错误,请在jira通知单中存档。目前的版本是2.6!2.2也很旧…不要使用这样的旧版本。请参阅以上我的评论。@A.Di Matteo感谢您的建议,问题似乎出在过时的版本上,因此我们将尝试更新并再次检查。剩下的问题是-你知道有没有可能通过编译/组装阶段避免重复解析?@khmarbaise我同意,正如我在答案底部所说的,maven和plugin都应该升级,但我们不知道为什么会使用这些旧版本(如果真的/确凿的原因存在的话),所以至少是最简单的建议,我会说不要使用测试版。然后,我们肯定会保持一致,避免使用2009年发布的版本,并尝试推动更新。当然。这个问题与许多引用复制粘贴的旧版本的旧帖子有关…;-)@例如,dbf插件需要解析(可传递的)依赖项才能将它们打包到带有依赖项的jar中,但无论如何解析都会针对本地存储库(除非解析不匹配的bug)。检查是否存在类似问题。解决方案是转到
maven shade plugin
,这在大多数情况下都是推荐的方法。