Maven类路径顺序问题

Bre*_*nah 42 maven-2 classpath

有没有人知道在Maven2中设置特定类路径顺序的方法,而不是我现在似乎经历的随机排序?

想要这样做的原因有很多:

  • 供应商提供了一个补丁jar,它包含以前发布的jar的覆盖类,因此补丁jar必须首先出现在类路径排序中.
  • 通过遍历pom依赖项发现的类路径上找到的两个jar包含具有不同签名的相同包中的相同类.例如:

jboss jbossall-client 4.2.0.GA

org.hibernate hibernate 3.1

两者都包含:org.hibernate.util.ReflectHelper.class,但jbossall-client版本缺少getFastClass方法.

从谷歌搜索我发现这可能是maven爱好者和面对这个特定问题的人之间争论的焦点,但肯定有合法的原因可以进行类路径排序.

任何解决了这个特殊困境的人的建议都将不胜感激!

谢谢

kro*_*old 39

从版本2.0.9开始,maven使用pom顺序进行类路径,因此您现在可以实际操作它.我们主要是将传递依赖性压缩到我们也直接包含的外部库.

从maven 2.0.9的发行说明:

MNG-1412/MNG-3111在类路径上引入了依赖关系的确定性排序.在过去,使用自然集排序,这导致奇怪的结果.现在可以从您的pom中保留排序,并通过最后添加的继承添加依赖项.在具有冲突或重复依赖性的构建中,这可能会引入对输出的更改.简而言之,如果你有2.0.9的奇怪问题,请查看依赖关系,看看你是否在某处有冲突.